线程的状态

本文详细介绍了Java中线程的五种基本状态:新生、就绪、运行、阻塞及终止,并提供了具体的代码示例来展示如何通过不同方法使线程在这些状态之间转换。

package com.shsxt.thread02;
/*

  • 线程的状态
  • 新生 :new Thread(),创建一个线程
  • 就绪 :start(),就绪不是运行,就绪状态的线程会处于就绪队列中,等待cpu的调度
  • 运行 :当cpu为某个现成饭非配时间片,这个线程开始执行
  • 阻塞 :sleep(),阻止线程的正常执行,等待阻塞解除
  • 终止 :线程结束
  • 注意:
  •  1.如果一个线程一旦终止,没有办法恢复,就算重新开启也不是原来的线程
    
  •  2.阻塞状态接触,没有办法直接恢复运行状态,都会进入就绪状态
    
  • 如何使线程进入到终止状态:
  •  1.执行执行完毕  2.通过外部干涉   1)调用stop() destroy()  2)通过外部标识判断**
    
  • 如何使线程进入到就绪状态:
  •  1.start()
    
  •  2.阻塞状态接触直接进入就绪状态
    
  •  3.yield() 礼让线程
    
  •  4.线程切换,被切换的线程直接进入就绪状态
    
  • 如何使线程进入到阻塞状态:
  •  1.sleep()
    
  •  2.join() 插队
    
  •  3.wait() 
    
  •  4.IO操作
    
  • sleep(毫秒数) 线程睡眠,静态方法
  •  可以方法问题发生的可能性
    
  •  模拟网络延时
    
  • 使程序进入阻塞状态,让出cpu的资源,如果遇到对象锁的情况,sleep()抱着对象资源睡觉,不会释放对象的锁
    */
    public class StateDemo01 {
    public static void main(String[] args) {
    //倒计时
    new Thread(()->{
    for(int i=10;i>=0;i–){
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    if(i==0){
    System.out.println(“开始抢购!!!”);
    }else{
    System.out.println(i);
    }
    }
    }).start();
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值