我正在将任务队列/线程池模式系统与 D 中的n线程系统进行比较。我对 D 编程语言非常陌生,但之前曾使用过 C、Java 和 Python 中的线程。我正在使用 Tango 库,并以构建网络服务器为例。
我决定将其tango.core.ThreadPool
用作我的线程池,因为我的项目专注于传统线程和任务队列之间的易用性和性能。
文档显示我有 3 个选项:
ThreadPool.wait()
- 当池消耗队列中的任务时阻塞当前线程。ThreadPool.shutdown()
- 完成池中的任务,但不完成队列中的任务。ThreadPool.finish()
- 完成池和队列中的所有任务,但不再接受。
这些都不是我想要的。据我了解,您的任务列表应该能够在这些系统中增长。Web 服务器非常简单和幼稚;我只是希望它尽最大努力扩展到许多并发请求,即使它的资源管理只包括尽快消耗任务队列中的东西。
我怀疑这是因为主线程需要加入其他线程,但我对我的线程知识有点生疏。