Я получил программу я создаю (в C#) и я вижу два подхода ..создавать новые темы или получить больше работы для потоков
1) Менеджер работы, которая ждет любого числа X потоков до конца, когда закончил он получает следующий кусок работы и создает новый поток и придает ему, что кусок
или
2) Мы создаем X нити, чтобы начать, дать им каждый кусок работы, и когда нить заканчивает кусок, он просит менеджера заданий для большей работы. Если больше нет работы, она спит, а затем снова спрашивает, когда сон становится все более продолжительным.
Эта программа будет выполняться и выполняться, чтобы я мог видеть ее превращением в сервис, который постоянно ищет больше заданий.
Каждый кусок будет состоять из множества идентификаторов данных, вызова в базу данных, чтобы получить некоторую информацию или выполнить операцию над идентификатором данных, а затем записать в базу данных информацию о идентификаторе данных.
Чтобы прояснить подход 1, он ждет завершения потока, а затем создает новый поток и придает этому потоку больше работы, если еще предстоит сделать работу – 2009-03-31 15:06:14
Учитывая это, перейдите со вторым подходом. Однако, вместо процедуры сна-проверки-сна, попросите поток запросить рабочий элемент в конце. Если его нет, пусть он спит бесконечно. Затем, в вашем координаторе, он найдет спальные потоки и сигнализирует, что один из них проснется. –