Java线程的状态

Java虚拟机中线程的状态可以为且同时只能为以下6种之一,这些状态只是JVM定义的线程状态,不代表任何操作系统的线程状态.

1.NEW

线程被创建了,但没有调用start()方法

Thread t = new TestThread(); //创建线程,此时处于NEW状态

2.RUNNABLE

线程处于(可)运行状态,但也可能在等待CPU等资源
或者等待IO,比如socket的等待数据流


3.BLOCKED

线程处于等待某个锁的状态

4.WAITING

当线程调用一下方法之一后进入WAITING状态
a.wait() ;
b.join();
c.LockSupport.park()

5.TIMED_WAITING

线程等待某个时间段过去,
当线程调用一下方法之一后进入WAITING状态
a.wait() with time anout
b.join() with timeout
c.sleep(xxx);
d.LockSupport.parkNanos
e.LockSupport.parkUntil

6.TERMINATED

线程终止

[color=red][b]特别注意Blocked和Wating状态的不同,前者是线程在锁的block队列里面,当锁被释放时可以去竞争锁的所有权,但是处于Waiting状态的线程必须被另外线程通过相应的方法唤醒,否则将永远保持Waiting状态[/b][/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值