并发之线程状态


线程可以有6种状态:

  1. New(新创建)
    当用new创建一个线程时,此时为new状态。
  2. Runnable(可运行)
    新建的线程调用start()方法之后,线程变为可运行状态,可运行状态的线程可能在运行也可能没运行,这取决于操作系统给线程提供运行的时间。
  3. 被阻塞(Blocked)
    当线程准备运行的时候,发现请求的内部对象锁被其他线程持有,线程将进入阻塞状态。只有当其他线程释放该锁,且线程调度器允许本线程持有它的时候,线程将转变为非阻塞状态。
  4. 等待(Waiting)
    当线程等待另一个线程通知线程调度器一个条件时,他自己进入等待状态。
  5. 计时等待(Timed waiting)
    调用带超时参数方法的线程将进入计时等待。此状态一直持续到超时或者接收到适当的通知。
  6. 终止(Terminated)
    run方法正常退出而死亡;
    因为一个未捕获的异常终止当前的run方法意外死亡;
    可以调用stop方法杀死线程,此方法不安全,已标注为Deprecated,不建议使用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、并发 进程:每个进程都拥有自己的一套变量 线程:线程之间共享数据 1.线程 Java中为多线程任务提供了很多的...
    SeanMa阅读 2,535评论 0 11
  • 第三章 Java内存模型 3.1 Java内存模型的基础 通信在共享内存的模型里,通过写-读内存中的公共状态进行隐...
    泽毛阅读 4,382评论 2 22
  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,503评论 1 15
  • 北京,第一天 一早起来,终于意识到,此刻呼吸着是北京的空气,要开始在这里工作、生活了。想说,要改变现状,必须行动。...
    西风5阅读 850评论 0 0
  • 纸月,在书中是一位善良、柔弱的女孩,可在我的眼里纸月是一位善良、坚强、内向、可爱的女孩。 她...
    jlly阅读 547评论 0 0