循环体中将任务加入到线程池队列踩坑
问题描述
new了一个线程池并设置了线程大小后,假设线程大小为3,任务数量远远大于线程设置大小。那么任务就会自动加入到队列中。运行后发现,除了前面的3个任务可以正常执行,其它执行的任务都为同一个任务。
原因
可能是存放在线程池队列中的对象都是同一个对象
相关代码
对象queryVo必须放在循环体内——-原因:如果放在循环体外,当线程池设置的大小没有当前任务多时,任务会存放在线程池的队列中,而这时候,存放在线程池队列中的对象都是同一个对象。这样就无法根据不同的参数执行不同的任务了。
另外,最好后面可以显示关闭线程池,多层嵌套循环也应该注意该问题
版权声明:本文为chenjiashu_csdn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。