欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java的多线程控制

程序员文章站 2022-07-12 19:35:10
...

->Java的多线程控制在多线程编程中经常会用到,线程在不同的方法调用后会产生多种状态之间的切换,在这里我做了一个总结,下图为线程的状态控制图:

Java的多线程控制
            
    
    博客分类: Java基础并发编程 java多线程线程状态线程控制阻塞 

->状态说明:

新建:线程对象被创建后的状态。

就绪:调用线程对象的start方法后,线程进入就绪状态。

        ->如果CPU此时空闲,可以分配给该线程时间片,则立即进入运行状态。

        ->如果CPU繁忙,线程仍然在就绪状态下等待。

运行:线程在就绪状态下获取时间片即可进入运行状态。

        ->如果时间片运行结束,或者调用了yield方法,该线程进入就绪状态等待下次运行。

        ->如果线程调用sleep、join、wait或遇到同步lock时,进入阻塞状态。

        ->如果线程执行完毕、调用interrupt方法或者主线程执行结束时,该线程进入终止状态。

阻塞:线程在运行时通过调用sleep、join、wait或遇到同步lock时线程进入阻塞状态。

        ->如果sleep结束会解除sleep方法引起的阻塞,该线程进入就绪状态。

        ->如果join结束会解除join方法引起的阻塞,该线程进入就绪状态。

        ->如果其他线程调用了notify、notifyAll方法会解除wait方法引起的阻塞,该线程进入就绪状态。

        ->如果线程执行了interrupt方法,则线程终止。

终止:线程生命周期结束。