首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问上并发编程的有关问题

2013-03-14 
请教下并发编程的问题先猪大家新年快乐!因为本人对多线程缺乏认识,想借鉴下大家的代码,希望赐教。想了两个

请教下并发编程的问题
先猪大家新年快乐!因为本人对多线程缺乏认识,想借鉴下大家的代码,希望赐教。请问上并发编程的有关问题
想了两个问题,一个是多线程遍历文件;另一个是多线程计算N以内素数。
[解决办法]
你这两个需要用到多线程吗,即使用了也不一定就快.
[解决办法]
关于多线程的网上有很多示例,可以下载的啊。

[解决办法]
使用多线去遍历一个文件,每个线程去遍历文件的一部分,比如一个文件有100个字节,那么再假如你创建4个线程去遍历,把文件的100个字节分成4份,那么可以让第一个线程去访问前25个字节,第二个线程遍历第二个25个字节,以此是第三个线程、第四个线程。计算N以内的素数,方法类似,把N以内的数分成若干区间,区间的个数要根据你创建的线程数来确定。
这样你需要先了解如何创建线程,如何在线程体里遍历文件或者计算素数,还有是如何分割文件,当然需要获得文件的长度。
[解决办法]

引用:
我最想知道如何维护公用变量,以及各线程间的通信。

用锁
[解决办法]
遍历文件,发现一个子文件夹,就启动一个线程。
[解决办法]
线程之间通信,用锁或者信号量。
[解决办法]
多线程遍历文件,大概要自己控制,比如可以这样:
如果是目录就启动一个子线程去处理,否则自己处理。

多线程计算素数,可以用OpenMP进行, 甚至可以利用Open MPI, 使用多个节点进行计算。

热点排行