C#使用多线程进行并发处理
在我目前使用多线程过程中,都是有个条件,就是每个认为都可以独立开来,互相不影响,这样的话使用多线程可以大大提高效率
背景介绍
目前的工作做网络爬虫抓取数据,一次性获得多个网址之后,分别对每一个网址都进行抓取解析,然后放入数据库中
多线程代码
//1.开启多线程
var WorkItem = new WorkItem {....};
ThreadPool.QueueUserWorkItem(new WaitCallback(
(worktask) =>
{
var workitem = (WorkItem)worktask;
...
);
}
), WorkItem);
异步锁代码
Monitor.Enter(this.thisLock);
....//相关逻辑
Monitor.Exit(this.thisLock);