当前位置:  开发笔记 > 编程语言 > 正文

pthreads - 如何并行化作业

如何解决《pthreads-如何并行化作业》经验,为你挑选了1个好方法。

我需要并行化一个简单的密码破解程序,以便在n处理器系统上使用它.我的想法是创建n个线程,并在完成后为它们提供越来越多的工作.

了解线程何时完成的最佳方法是什么?互斥?在其他线程运行时不断检查这个互斥锁是不是很昂贵?



1> MarkR..:

您可以拥有一个简单的队列结构 - 使用您喜欢的任何数据结构 - 然后在添加/删除项目时使用互斥锁.

如果您的线程以足够大的"块"抓住他们需要完成的工作,那么互斥锁上的争用很少,因此开销非常小.

例如,如果每个线程一次抓取大约1秒的工作并独立工作1秒,那么互斥锁上的操作就会很少.

线程可以在没有更多工作时退出; 然后主线程可以使用pthread_join等待.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有