Concurrency 如何将任务异步添加到tango(D)线程池?
我将任务队列/线程池模式系统与D中的n线程系统进行比较。我对D编程语言非常陌生,但以前曾在C、Java和Python中使用过线程。我正在使用Tango库,并以构建Web服务器为例 我决定使用Concurrency 如何将任务异步添加到tango(D)线程池?,concurrency,threadpool,d,tango,Concurrency,Threadpool,D,Tango,我将任务队列/线程池模式系统与D中的n线程系统进行比较。我对D编程语言非常陌生,但以前曾在C、Java和Python中使用过线程。我正在使用Tango库,并以构建Web服务器为例 我决定使用tango.core.ThreadPool作为我的线程池,因为我的项目主要关注传统线程和任务队列之间的易用性和性能 显示我有3个选项: ThreadPool.wait()-在线程池使用队列中的任务时阻止当前线程 ThreadPool.shutdown()-完成池中的任务,但不完成队列中的任务 ThreadPo
tango.core.ThreadPool
作为我的线程池,因为我的项目主要关注传统线程和任务队列之间的易用性和性能
显示我有3个选项:
ThreadPool.wait()
-在线程池使用队列中的任务时阻止当前线程ThreadPool.shutdown()
-完成池中的任务,但不完成队列中的任务ThreadPool.finish()
-完成池和队列中的所有任务,但不再接受Executor.execute(Runnable)
form(提交一个任务以在将来某个时候运行)
请注意,这里是后进先出队列,而不是预期的先进先出队列,因此分配足够的工作人员如何?从文档中,它的工作方式类似于java表单中的Executor.execute(Runnable)
form(提交一个任务以在将来某个时候运行)
请注意,这里是一个后进先出队列,而不是预期的先进先出队列,因此分配足够的工作人员我发现我构造委托的方式导致代码的某些部分阻塞。我现在将该对象作为参数传递给我的委托,而不是关闭由
SocketServer.accept
返回的对象。我不知道为什么这是一个解决方案,但该计划现在工作的预期。我听说D版本1中的闭包被破坏了;也许这与此有关。我发现我构造委托的方式在代码的某些部分造成了阻塞。我现在将该对象作为参数传递给我的委托,而不是关闭由SocketServer.accept
返回的对象。我不知道为什么这是一个解决方案,但该计划现在工作的预期。我听说D版本1中的闭包被破坏了;也许这与此有关。我一直在使用append;我想知道我是否做错了什么,因为将-c2
与apache基准测试一起使用会导致某些东西卡住。我确实看到评论说它是一个堆栈而不是一个队列;我想知道他们为什么做出这样的决定;我想知道我是否做错了什么,因为将-c2
与apache基准测试一起使用会导致某些东西卡住。我确实看到评论说它是一个堆栈而不是一个队列;我想知道他们为什么做出这样的决定。为什么不使用D2?它具有良好/更好的并行性功能。@Daevius:否则,Brian必须放弃探戈。@Daevius:我被限制在D v。1因为我的发展环境;LDC和Tango是唯一可用的装船工具。为什么不使用D2?它具有良好/更好的并行性功能。@Daevius:否则,Brian必须放弃探戈。@Daevius:我被限制在D v。1因为我的发展环境;“探戈”最不发达国家是唯一可用的装船方式。