大量数据处理如何生成多线程的问题

 我来答
草原上之狼
高粉答主

2018-06-04 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4011万
展开全部

你这里有几处会导致多线程去抢占资源。逻辑设计上最好调整一下。

  • 对d.List的lock处理。多个线程都在等待lock,以便从d.List中取出数据。不如改成:送进Save()的obj参数中,d.List里就只装有对应的2000条数据。不需要在线程中在取出数据。

  • ExistList.where()的查询循环体中调用查询,查询结果都是同一条的话,显得有点多余。不如在循环体外只查询一次,记下查询结果,循环体内直接用结果进行判断。如果查询结果不是固定的话,那么尽量不要从ExistList来查询,会导致多个线程争抢ExistList。可以把查询源从obj传进来,避免多线程争抢。

  • 多个线程一起SaveChange的时候,数据库一端也是负荷很大,设计上要考虑到。

  • 你先计算一下耗时,看看哪一段代码是最耗时的,再对耗时的代码进行优化。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式