首页 > 其他分享 >线程的生命周期

线程的生命周期

时间:2022-11-30 13:00:50浏览次数:48  
标签:状态 生命周期 Thread Waiting WAITING 线程 方法

线程的状态
线程的状态:也就是线程从生到死的过程,以及中间经历的各种状态及状态转换。
理解线程的状态有利于提升并发编程的理解能力。

Java线程的状态
Java总共定义了6种状态
6种状态都定义在Thread类的内部枚举类中。

public class Thread{
     ...     
    public enum State {    	
        NEW,    	
        RUNNABLE,    	
        BLOCKED,    	
        WAITING,    	
        TIMED_WAITING,    	
        TERMINATED;
    }
     ...
}
                    

线程的6种状态总结

NEW(新建)
线程刚被创建,但是并未启动。
Runnable(可运行)
线程已经调用了start()等待CPU调度
Blocked(锁阻塞)
线程在执行的时候未竞争到锁对象,则该线程进入Blocked状态;。
Waiting(无限等待)
一个线程进入Waiting状态,另一个线程调用notify或者notifyAll方法才能够唤醒
Timed Waiting(计时等待)
同waiting状态,有几个方法有超时参数,调用他们将进入Timed Waiting状态。带有超时参数的常用方法有Thread.sleep 、Object.wait。
Teminated(被终止)
因为run方法正常退出而死亡,或者因为没有捕获的异常终止了run方法而死亡。

 

新建状态( NEW ) 创建线程对象

就绪状态( RUNNABLE ) start方法

阻塞状态( BLOCKED ) 无法获得锁对象

等待状态( WAITING ) wait方法

计时等待( TIMED_WAITING ) sleep方法

结束状态( TERMINATED ) 全部代码运行完毕

 

标签:状态,生命周期,Thread,Waiting,WAITING,线程,方法
From: https://www.cnblogs.com/popopopopo/p/16938091.html

相关文章

  • 线程池处理Callable任务
    线程池如何处理Callable任务线程池如何处理Callable任务,并得到任务执行完后返回的结果。使用ExecutorService的方法:Future<T>submit(Callable<T>command)packagecom.......
  • Executors:线程池的工具类处理线程
    Executors:线程池的工具类处理线程Executors得到线程池对象的常用方法Executors:线程池的工具类通过调用方法返回不同类型的线程池对象。Executors的底层其实也是基于线......
  • 线程池处理Runnable任务
    线程池如何处理Runnable任务使用ExecutorService的方法:voidexecute(Runnabletarget)packagecom.itheima.d8_threadpool;publicclassMyRunnableimplementsRunn......
  • Qt网络编程-从0到多线程编程
    网络编程开发1.简介两个协议,一个是TCP协议,一个是UDP协议先说TCP:TCP的话,服务器端需要端口监听,直到有客户端进行连接发送过来请求数据,然后客户端根据请求数据进行应答,之......
  • Qt多线程开发总览,既然用到了就记录一下
    多线程在LBD_VM_Intercom中使用的一个简单的实例陶工给的dll需要进行异步操作才可以将视频画面附到窗体上,必须得在画面出现之后才可以附加画面,否则就有可能出现意外bug,所......
  • Qt自带的阴影类、跨线程问题汇总、hover相关、全屏轮子,一些思考。
    一点思考:故事的结局重不重要?我语文不好,但是我数学不好。我数学不好,但是我英语不好。我英语不好,但是我物理不好。我物理不好,但是我化学不好。我化学不好,但是我历史不好......
  • 线程池
    线程池什么是线程池?线程池就是一个可以复用线程的技术。不使用线程池的问题如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线......
  • Python爬取m3u8视频(多线程)- OK好用,代码在文章尾
    摘自:https://www.cnblogs.com/python147/p/14511627.html1.前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。......
  • 网上一个哥们写的,使用Python写一个m3u8多线程下载器 -- 没用起来
    摘自:https://blog.csdn.net/muslim377287976/article/details/104340242/ 文章目录I.挖坑缘由II.功能/更新记录III.代码1.GUI2.下载工具类3.逻辑代码IV.下载地址I.挖坑......
  • 【pthread】pthread - 线程的高级属性
    线程的基本元素线程的常见的基本操作线程的创建线程的终止线程之间的同步线程的调度线程当中的数据管理线程与进程之间的交互进程与线程之间共享一些内核数据结......