ThreadPoolExecutor+BlockingQueue执行耗时任务,线程池中的线程可以复用,超过线程池maximumPoolSize的任务可以在阻塞队列BlockingQueue中等待。
任务应该是同步操作的任务,这样才有阻塞,不会一拥而上。
如果是耗时任务,并且是异步任务,那么没有阻塞,会一瞬间都执行完毕(线程池的线程都复用过),所有任务都会运行,但是前面的几个任务耗时操作并没有瞬间完成,造成后面的任务超时或者别的问题。
任务应该是同步操作的任务,这样才有阻塞,不会一拥而上。
如果是耗时任务,并且是异步任务,那么没有阻塞,会一瞬间都执行完毕(线程池的线程都复用过),所有任务都会运行,但是前面的几个任务耗时操作并没有瞬间完成,造成后面的任务超时或者别的问题。
本文探讨了ThreadPoolExecutor结合BlockingQueue处理耗时任务的机制。线程池中的线程能够复用,超出最大数量的任务可在阻塞队列中等待。文章强调了同步操作对于避免任务堆积和超时的重要性。
170万+

被折叠的 条评论
为什么被折叠?



