最近在学习Java中的多线程以便对耗时较大的代码进行优化,在使用过程中遇到了一个很恼人的问题,问题虽然不大,却影响到代码执行结果,现在分享出来希望大家可以不被这个绊脚石绊倒:)
当需要用到isTerminated()函数判断线程池中的所有线程是否执行完毕时候,不能直接使用该函数,必须在shutdown()方法关闭线程池之后才能使用,否则isTerminated()永不为TRUE,线程将一直阻塞在该判断的地方,导致程序最终崩溃。
最近在学习Java中的多线程以便对耗时较大的代码进行优化,在使用过程中遇到了一个很恼人的问题,问题虽然不大,却影响到代码执行结果,现在分享出来希望大家可以不被这个绊脚石绊倒:)
当需要用到isTerminated()函数判断线程池中的所有线程是否执行完毕时候,不能直接使用该函数,必须在shutdown()方法关闭线程池之后才能使用,否则isTerminated()永不为TRUE,线程将一直阻塞在该判断的地方,导致程序最终崩溃。