线程池和多核系统

Mic*_*nel 3 multithreading design-patterns multicore threadpool

您认为线程设计模式是多核未来的发展方向吗?

例如,线程池库(如果广泛使用)会强制/强制应用程序编写者

(1)将问题分解为单独的并行作业,从而促进(强制执行:)并行性

(2)从所有低级OS调用中抽象,同步等使程序员的生活更轻松.(特别是对于C程序员:))

我坚信它是多核未来的最佳方式(或者是"最好的方式之一:)"...

所以,我的问题是,我是在写这么想,还是我在妄想:)

问候,

微内核

yan*_*kee 6

线程池是一种涉及队列和许多线程从队列中获取作业并处理它们的技术.这与每当新任务到达时刚启动新线程的技术形成对比.

好处是线程的最大数量是有限的,以避免过多的线程,并且任何新任务所涉及的开销较少(线程已经在运行并且需要执行任务.不需要启动威胁).

这是一个很好的设计高度取决于你的问题.如果你有很多短期工作以非常快的速度进入你的程序,那么这是一个好主意,因为较低的开销实际上是一个好处.如果你有大量的并发任务,那么最好不要让你的调度程序做太多的工作.

有许多领域的线程池没有帮助.所以你不能概括.有时多线程是不可能的.或者甚至不需要,因为多线程会给你的代码增加一个不可预测的元素(竞争条件),这是非常难以调试的.

线程池库很难"强迫"您使用它.你仍然需要考虑一下,如果你只是开始一个线程...也无济于事.