2013年7月30日

线程池的陷阱

摘要: 使用线程池要小心,一不小心就会导致程序挂死。举例说明这种情况。线程池中有一个同步队列存放数据,多个线程取队列中的数据去处理,数据的类型可能有多个,所以每种数据类型对应一个处理函数,假设某种数据的处理函数会把线程阻死,这时就悲剧了,这个阻死会蔓延到线程池的所有线程,最后线程池中所有的线程都挂死了,程序也挂死了。因为线程池的线程是不停的切换去处理数据的,凡是遇到会挂死线程的数据时,线程会一个个死掉,直到所有的线程挂死。解决办法是:一、一个类型的数据一个线程或者多个类型的数据一个线程,这样某个类型的数据处理导致线程挂死,其它线程还能正常运行,不会导致程序挂死。二、线程池中加超时处理,超时处理就不会挂 阅读全文

posted @ 2013-07-30 14:40 qicosmos(江南) 阅读(1467) 评论(0) 推荐(1) 编辑

导航