假设我使用pthreads
创建线程,是否可以在 >>初始化之后向他们发送新内容,因此我不会浪费资源来创建新线程?例如,我创建3个线程,线程2信号完成,我发送另一个“任务”而不杀死它并开始一个新任务。感谢。
答案 0 :(得分:5)
通常的简单形式是普通(工作)queue。原则上,您可以维护一个队列结构,可能是链接列表,受互斥锁保护。通常,主要/生产者线程使用condition variables来通知工作线程新工作可用,因此他们不必轮询。
以前可能有用的一些SO问题是:
答案 1 :(得分:3)
是的,这就像Apache这样的服务器可以提高性能。设计模式称为Thread pool pattern,并且使用pthreads有各种实现(例如this one)。
当然,您可能希望尽可能简化实施,具体取决于您的目标。
答案 2 :(得分:0)
当然。例如,您可以使用生产者 - 消费者模式。这是example in C#,但也可以在pthreads中轻松实现。
答案 3 :(得分:0)
您问题的search-keyword是“线程池”或“线程池”。使用此术语,您可以在本网站以及Google中找到大量信息。