java线程
1.创建线程的方式:
继承Thread类,实现runnable接口,实现callable接口,线程池
2.run和start的区别:
start方法用来启动线程,此时线程处于就绪状态,并没有运行。
run方法包含了此线程的执行内容,此时线程处于运行状态,执行run方法中的代码,run方法结束,线程终止,cpu再调度其它线程。
3.几种线程池:
newCachedThreadPool:会重用线程池中的线程,如果当前没有可用线程,会创建一个新线程加入池中,如果池中有线程60s未处于活动状态会被终止并从缓存中移除
newFixedThreadPool:有固定的线程数,会重用线程池中的线程,若当前无可用线程,会排队等待可用线程,池中线程在被显式关闭前一直存在
newScheduledThreadPool:可安排在给定延迟后运行命令或定期执行
newSingleThreadPool:池中只有一个线程,这个线程池可以在线程死后重新创建一个线程替代原线程继续执行