das*_*uki 2 c++ multithreading
我做了一些与绘图软件和数学建模相关的c ++编程.有些程序需要一到五个小时才能执行并输出结果; 但是,他们只占我核心二人组的50%.我在另一台基于双处理器的机器上尝试了相同的结果.
有没有办法强制程序使用所有可用的处理器资源和内存?
注意:我正在使用ubuntu和g ++
Ste*_*sop 10
一个线程一次只能在一个核心上运行.如果要使用两个核心,则需要找到一种方法在另一个线程中完成一半的工作.
这是否可行,如果可行,如何划分线程之间的工作,完全取决于您正在进行的具体工作.
要实际创建新线程,请参阅Boost.Thread文档,pthreads文档或Win32 API文档.
[编辑:其他人建议使用库来为您处理线程.我没有提到这些的原因是因为我没有他们的经验,不是因为我认为他们不是一个好主意.它们可能是,但这完全取决于您的算法和平台.线程几乎是通用的,但要注意多线程编程通常很难:你为自己创造了很多问题.