大量数据处理如何生成多线程的问题
1个回答
展开全部
你这里有几处会导致多线程去抢占资源。逻辑设计上最好调整一下。
对d.List的lock处理。多个线程都在等待lock,以便从d.List中取出数据。不如改成:送进Save()的obj参数中,d.List里就只装有对应的2000条数据。不需要在线程中在取出数据。
ExistList.where()的查询循环体中调用查询,查询结果都是同一条的话,显得有点多余。不如在循环体外只查询一次,记下查询结果,循环体内直接用结果进行判断。如果查询结果不是固定的话,那么尽量不要从ExistList来查询,会导致多个线程争抢ExistList。可以把查询源从obj传进来,避免多线程争抢。
多个线程一起SaveChange的时候,数据库一端也是负荷很大,设计上要考虑到。
你先计算一下耗时,看看哪一段代码是最耗时的,再对耗时的代码进行优化。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询