概述
- 线程的生命周期
- 线程的生命周期中的几种状态
新建
就绪(可以运行)
运行
阻塞(挂起)
死亡(结束)
线程各个状态的转换图如下图所示:
线程转换过程:
通过 new 线程名 创建线程(新建状态)。启动start方法(就绪状态)后,然后执行start方法里面的内容(运行状态),此时,发生了一个暂停事件(使用sleep、join或是wait方法),导致线程暂停(阻塞状态),暂停过后,线程运行结束( 死亡或结束状态 )
sleep方法:(在Thread中,下面表格来源于JDK_API_1_6_zh_CN.CHM文件)
返回值类型 | 方法名及参数 | 解释 |
---|---|---|
static void | sleep(long millis) | 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 |
static void | sleep(long millis, int nanos) | 在指定的毫秒数加指定的纳秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。 |
使用sleep方法的小案例:
package com.thread.thread;
public class MyThread extends Thread{
//重写run()方法
//通过Alt+/ 可以提示从父类中继承了那些成员
//需要注意:不能重写start方法,start方法需要为线程开辟空间
@Override
public void run() {
System.out.println("Thread---线程开始运行了");
try {
//线程挂起,阻塞2秒钟后继续运行
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread---线程运行结束了");
}
}
sleep()阻塞2秒钟测试
package com.thread.thread;
public class TestMyThread {
public static void main(String[] args){
//创建线程对象
MyThread thread = new MyThread();
thread.start();
}
}
总结:sleep方法是 谁运行,谁阻塞
最后
以上就是飘逸冷风为你收集整理的线程(3)--线程调度之sleep方法的全部内容,希望文章能够帮你解决线程(3)--线程调度之sleep方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复