Это почти идеально! Я обязательно сделаю некоторые тяжелые исследования, спасибо за ответ!

лизую простой механизм пула потоков для моего сервера Ubuntu (для моей многопользовательской программы анонимного чата), и мне нужно заставить рабочие потоки спать, пока не будет выполнено задание (в виде указателя на функцию и параметра) ,

Моя текущая система выходит из окна. Я (рабочий поток) спрашиваю менеджера, если работа доступна, и если нет сна в течение 5 мс. Если есть, добавьте задание в рабочую очередь и выполните функцию. Жалкая трата циклов.

Что бы ялюбить сделать, это сделать простую систему, похожую на событие. Я имею в виду наличие вектора мьютексов (по одному на каждого работника) и указание дескриптора мьютекса в качестве параметра при создании. Затем в моем классе менеджера (который содержит и раздает задания) всякий раз, когда создается поток, блокируйте мьютекс. Когда необходимо выполнить задание, разблокируйте следующий мьютекс в очереди, подождите, пока оно будет заблокировано и разблокировано, и разблокируйте его. Однако мне интересно, есть ли гораздо лучшие средства для этого.

tldr; Итак, мой вопрос заключается в следующем. Какой самый эффективный, действенный и самый безопасный способ заставить поток ждать работу от управляющего класса? Является ли опрос методом, который я должен рассмотреть (более 1000 клиентов одновременно), является ли блокировка мьютекса приличной? Или есть другие методы?

Ответы на вопрос(1)

Ваш ответ на вопрос