要读取MongoDB中的50W条数据,因为数据太多决定分批读取每次读取10000条,每次读取时间大概需要2s,循环50次大概是用50*2=100s;
由于化肥时间太长决定使用多线程,程序中并发了10个线程去查询,
本来以为值需要2*50/10=10s钟就可以完成,结果发现最终总时间还是用了100s
郁闷。。。。
查看日志的时候发现第一个线程用可2s,然后后面的4s 5s 8s 。。。。100s逐渐增多。
现象看来是线程读取出现了等待,mongo读取难道也是阻塞的吗,求大神指导
你的线程中是否使用了同步、加锁,访问了共享的资源,或者你的cpu只有1个?
mongodb有连接池,你一个进程的多个线程可以共享一个pool。