【发布时间】:2013-04-28 17:41:38
【问题描述】:
我有一个关于多线程(Openmp 和 C 代码)的问题。
我将在给定的文本文件中搜索 16 个不同的单词。这样做的方法是创建一个 for 循环,该循环遍历包含要搜索的每个单词的数组。 16 个不同的词意味着可以同时运行 16 个不同的线程。使用多线程的另一种方法是将文本文件切成 x 个大小相似的块并同时搜索每个块。 我的问题是:我可以使用多线程为每个单词创建一个线程,然后将该特定子线程拆分为新的子线程来扫描一个大小的数据块吗?
如果这不可行/不可行,我想唯一的解决方案是将文本文件手动拆分为不同的字符数组,然后对我要搜索的每个单词使用#pragma。
只会对文本文件执行读取操作,而写入操作仅限于分配给每个单词的变量以用于计数目的。 IE。不会有比赛条件,除非我错过了什么。
【问题讨论】:
标签: c multithreading multiprocessing openmp pragma