java线程状态

线程主要有6中状态

1.BLOCKED :线程等待需要的锁而挂起

2.NEW:线程还没有开始运行

3.RUNNABLE:线程当前正在执行,或者获得了cpu访问权之后开始执行
4.TERMINATED:线程执行结束
5. TIMED_WAITING:线程挂起执行一段时间 比如:wait(),sleep(),join()等待时处于这种状态
6.WAITING:线程因等待某些状态挂起执行,调用非暂停版的wait() join()时的状态

示意图:

在这里插入图片描述

代码示例

线程Run

class Run implements Runnable{

    Thread t;
    A a;
    public Run(A a,String name){
        this.a =a;
        t = new Thread(this,name);
        System.out.println(name + "\t" + t.getState());
        t.start();
        System.out.println(name + "\t" + t.getState());
    }
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + "\t" + t.getState());
        a.foor();
        System.out.println(Thread.currentThread().getName() + "\t" + t.getState());
    }
}

实例A

class A {
    public synchronized  void foor(){
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

测试

   public static void main(String[] args) {
        A a = new A();
        Run r1 = new Run(a,"r1");
        Run r2 = new Run(a,"r2");

        while(true){
            System.out.println(Thread.currentThread().getName() + "\tr1\t"  + r1.t.getState());
            System.out.println(Thread.currentThread().getName() + "\tr2\t"  + r2.t.getState());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

测试结果

r1	NEW
r1	RUNNABLE
r2	NEW
r2	RUNNABLE
r1	RUNNABLE
main	r1	RUNNABLE
main	r2	RUNNABLE
r2	RUNNABLE
main	r1	TIMED_WAITING
main	r2	BLOCKED
main	r1	TIMED_WAITING
main	r2	BLOCKED
main	r1	TIMED_WAITING
main	r2	BLOCKED
main	r1	TIMED_WAITING
main	r2	BLOCKED
r1	RUNNABLE
main	r1	TERMINATED
main	r2	TIMED_WAITING
main	r1	TERMINATED
main	r2	TIMED_WAITING
main	r1	TERMINATED
main	r2	TIMED_WAITING
main	r1	TERMINATED
main	r2	TIMED_WAITING
main	r1	TERMINATED
main	r2	TIMED_WAITING
r2	RUNNABLE
main	r1	TERMINATED
main	r2	TERMINATED
main	r1	TERMINATED
main	r2	TERMINATED
main	r1	TERMINATED
main	r2	TERMINATED
main	r1	TERMINATED
main	r2	TERMINATED
main	r1	TERMINATED
main	r2	TERMINATED
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值