结果是:对1000条网页进行抓取,并显示抓取后的结果,比如哪些能抓取,哪些没有关键字之类。String[] webSites= ...
for(int i = 0 ; i <1000 ; i++)
{
MyFunc(webSites[i]);
}
public void MyFunc(string website)
{
WebRequest wRequestUTF = WebRequest.Create(website);
......(就是获取网页的内容)
}
这个for循环执行的时候太长,想缩短时间,
这种改成多进程 是否有作用?
比如我把长度为1000的数组分成10个长度为100的数据
然后用10个进程去执行这个10个数组对应的函数
大概如下 thread1 = new Thread(new ParameterizedThreadStart(this.Exec));
thread2 = new Thread(new ParameterizedThreadStart(this.Exec));
thread3 = new Thread(new ParameterizedThreadStart(this.Exec));
thread4 = new Thread(new ParameterizedThreadStart(this.Exec));
thread5 = new Thread(new ParameterizedThreadStart(this.Exec));
thread6 = new Thread(new ParameterizedThreadStart(this.Exec));
thread7 = new Thread(new ParameterizedThreadStart(this.Exec));
thread8 = new Thread(new ParameterizedThreadStart(this.Exec));
thread9 = new Thread(new ParameterizedThreadStart(this.Exec));
thread10 = new Thread(new ParameterizedThreadStart(this.Exec)); thread1.Start(os[0]);
thread2.Start(os[1]);
thread3.Start(os[2]);
thread4.Start(os[3]);
thread5.Start(os[4]);
thread6.Start(os[5]);
thread7.Start(os[6]);
thread8.Start(os[7]);
thread9.Start(os[8]);
thread10.Start(os[9]);为了显示执行完后的报告
我加了
thread1.Join();
thread2.Join();
thread3.Join();
thread4.Join();
thread5.Join();
thread6.Join();
thread7.Join();
thread8.Join();
thread9.Join();
thread10.Join();但是我觉得用了Join后,跟不用线程处理,时间好像是一样的?
for(int i = 0 ; i <1000 ; i++)
{
MyFunc(webSites[i]);
}
public void MyFunc(string website)
{
WebRequest wRequestUTF = WebRequest.Create(website);
......(就是获取网页的内容)
}
这个for循环执行的时候太长,想缩短时间,
这种改成多进程 是否有作用?
比如我把长度为1000的数组分成10个长度为100的数据
然后用10个进程去执行这个10个数组对应的函数
大概如下 thread1 = new Thread(new ParameterizedThreadStart(this.Exec));
thread2 = new Thread(new ParameterizedThreadStart(this.Exec));
thread3 = new Thread(new ParameterizedThreadStart(this.Exec));
thread4 = new Thread(new ParameterizedThreadStart(this.Exec));
thread5 = new Thread(new ParameterizedThreadStart(this.Exec));
thread6 = new Thread(new ParameterizedThreadStart(this.Exec));
thread7 = new Thread(new ParameterizedThreadStart(this.Exec));
thread8 = new Thread(new ParameterizedThreadStart(this.Exec));
thread9 = new Thread(new ParameterizedThreadStart(this.Exec));
thread10 = new Thread(new ParameterizedThreadStart(this.Exec)); thread1.Start(os[0]);
thread2.Start(os[1]);
thread3.Start(os[2]);
thread4.Start(os[3]);
thread5.Start(os[4]);
thread6.Start(os[5]);
thread7.Start(os[6]);
thread8.Start(os[7]);
thread9.Start(os[8]);
thread10.Start(os[9]);为了显示执行完后的报告
我加了
thread1.Join();
thread2.Join();
thread3.Join();
thread4.Join();
thread5.Join();
thread6.Join();
thread7.Join();
thread8.Join();
thread9.Join();
thread10.Join();但是我觉得用了Join后,跟不用线程处理,时间好像是一样的?
跟一个线程执行没啥区别你这种情况