ExecutorService是Java并发包里面的一个线程池服务
线程池的优势
- 复用已有的线程,消除任务中建立线程的开销
- 经过优化线程的数量,提升性能,保证处理器一直处于忙的状态,而没必要建立这么多的线程,使程序耗尽资源
首先能够带着如下观点一步一步看,之因此划掉是由于第二条理论不成立...
在18.4.2的练习中,我发现用Thread对象来执行一个线程和线程池管理执行线程的一个有趣的特色:
- Thread对象是自发销毁的,或由GC或由什么玩意儿,自发的回收线程对象(当线程中的任务执行完成时)。
- ExecutorService,用线程池来管理线程的话,得注意shutdown掉线程池,由于即便线程池中的线程对象执行完自身任务以后,依然处于running状态,他们已经"身不禁己"了;而且,当主线程已经执行完,咱们并无手动关闭线程池的话,ExecutorService依然存在,里面的线程对象,还有线程池对象,甚至还多出一个destroyVM的执行线程都会一直running,这是很可怕的...
用Thread对象来执行线程:
使用线程池(ExecutorService)来管理线程:
嗯。。个人生产消费者还没写呢。。同窗叫撸了。。尼玛。。我是个败类。。匿了。。