我有一个url队列,我传递给它的一个函数,它抓取并获取url中的每个url应该是并行的并且crawl是一个类,并且start是我的函数它抓取的网址,如果我运行程序的每个网址,是通过执行一个一个不能并行我的openmp并行编程有什么问题
while(!q.empty())
{
#pragma omp parallel for
{
for(int n=0; n<q.size(); ++n)
{
crawl.start(q.front());
q.pop();
}
}
}
输出
http://www.bing.com
http://www.bing.com/?scope=images&FORM=Z9LH
http://www.bing.com/?scope=news&FORM=Z9LH2
http://www.bing.com/?scope=video&FORM=Z9LH1
http://www.bing.com/explore?FORM=BXLH
http://www.google.co.in
http://www.google.co.in/advanced_search?hl=en
http://www.google.co.in/intl/en/about.html
http://www.google.co.in/intl/en/ads/
http://www.google.co.in/intl/en/privacy.html
似乎过程并不平行任何一个可以告诉我,我该怎么并行执行此操作
也envvar OMP_NUM_THREADS控制线程数 – Anycorn 2010-10-13 06:03:39