for(int i = 0; i < n; i++) doSomethingThreadSafe(i);
这将在windows平台上.我已经为每个处理器创建了一个线程,然后尝试尽可能均匀地为每个处理器划分n.然后我将必要的数据传递给每个线程,然后使用WaitForMultipleThreads.有一个更好的方法吗?我不想使用像boost这样的任何其他库.
理想情况下,我想要一些通用的(也许是模板化的)方法.即
threaded_for(0,n,doSomethingThreadSafe);
如果最好/最有效的方法是使用库,那么添加库需要多少工作,以及在这个例子中它将如何使用.不过,我更喜欢一种不需要添加其他东西的解决方案.
解决方法 最简单的方法是openMP – visual studio支持它作为标准,你只需在循环中添加几个魔术#pragma并使用你拥有的所有内核!最好的学习方法是如何不去做 – 32 OpenMP Traps For C++ Developers
另一种方法 – 但稍微复杂一些方法Intel TBB
总结以上是内存溢出为你收集整理的c中的循环螺纹全部内容,希望文章能够帮你解决c中的循环螺纹所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)