线程

1:线程的生命周期

(1) 线程通常有五种状态:创建,就绪,运行,阻塞 和死亡。

(2)阻塞的情况又分为三种:

2.1 等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池中” 进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用 notify或 notifyAll方法才能唤醒,wait是object类的方法。

2.2 同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被其他锁占用,则JVM会把该线程放入池中。

2.3其他阻塞:运行的线程执行sleep或join方法,或者发出了 io请求时,JVM会把该线程设置为阻塞状态当sleep状态超时,join等待线程终止或者超时,或者io处理完毕时,线程重新转入就绪状态。sleep是Thread类的方法。

 2线程池有那些:

线程池主要作用是提高系统的性能以及使用率:
        newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可 回收,则新建线程。
 
        newFixedThreadPool :  创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

        newScheduledThreadPool :创建一个定长线程池,支持定时及周期性任务执行。

        newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

posted @ 2021-08-17 19:45  怡宝矿泉水  阅读(47)  评论(0)    收藏  举报