Я сравниваю систему шаблонов очереди / пула потоков с n системой потоков в D. Я действительно новичок в языке программирования D, но работал с потоками в C, Java иПитон раньше.Я использую библиотеку Tango и создаю веб-сервер в качестве примера.
Я решил использовать tango.core.ThreadPool
в качестве пула потоков, так как мой проект ориентирован на простоту использования и производительность между традиционнымиПотоки и очереди задач.
Документация показывает, что у меня есть 3 варианта:
ThreadPool.wait()
- Блокирует текущий поток, пока пул потребляет задачи изочередь. ThreadPool.shutdown()
- завершает задачи в пуле, но не те в очереди. ThreadPool.finish()
- завершает все задачи в пуле и очереди, но потом больше не принимай.
Ничего из этого я не хочу.Насколько я понимаю, ваш список задач должен иметь возможность расти в этих системах.Веб-сервер очень прост и наивен;Я просто хочу, чтобы он старался изо всех сил при масштабировании до множества одновременных запросов, даже если его управление ресурсами состоит только из потребления вещей в очереди задач как можно быстрее.
Я подозреваю, что это потому, что основной поток должен присоединиться к другим потокам, но я немного заржавел в своем знании потоков.