线程的概念及状态说明

乔欣 Java教程 发布时间:2023-02-16 22:01:22 阅读数:8552 1
下文笔者将讲述线程的基本概念及线程状态说明,如下所示

线程的概念

在程序运行过程中
   能够运行程序代码的一个执行单位
    每个程序至少都有一个线程,也就是程序本身

线程的六种状态

new
runnable
waiting
timed waiting
blocked
terminated

线程各状态的说明

new:
    新创建一个线程对象 

可运行runnable:
    线程对象创建后
     其它线程(比如main线程)调用了该对象的start()方法
    该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。

阻塞blocked:
     阻塞状态是指线程因为某种原因放弃了cpu使用权
	  让出cpu time slice
     暂时停止运行
     直到线程进入可运行状态
     才有机会再次获得cpu timeslice转到运行状态

阻塞的情况分三种:
   1.等待阻塞:
        running线程执行wait()方法
		  JVM会把该线程放入等待队列(waitting queue)中
   2.同步阻塞:
        running线程在获取对象的同步锁时
        若该同步锁被别的线程占用
		  则JVM会把该线程放入锁池(lock pool)中
   3.其它阻塞:
        running线程执行Thread.sleep(long ms)或t.join()方法
		 或者发出了I/O请求时
		 JVM会把该线程置为阻塞状态
       当sleep()状态超时join()等待线程终止或超时、或者I/O处理完毕时,线程重新转入可运行状态。

死亡terminated:
    run()、main()方法执行结束
    或因异常退出了run()方法
	 则该线程结束生命周期
	 死亡的线程不可重生
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202302/5817.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者