你不知道的Java学习笔记22-- 线程阻塞(线程休眠)方法
2016-10-04 11:29
351 查看
线程阻塞(线程休眠)方法
一、Sleep(long millis)方法
Sleep(long millis):在指定的毫秒内让当前正在执行的线程休眠(暂停执行)。sleep()让当前正在执行的线程休眠,CPU去执行其他线程,等到休眠时间结束后,该线程处于就绪状态。等待CPU的继续执行,是接着上一次的执行,而不是重新执行。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/04/3db1bf634e7efe18611bd99c42bd1dc4)
二、yield()方法
yield()让当前正在执行的线程立即停止,CPU执行其他线程,而刚才正在执行的线程会马上处于就绪状态,没有等待的时间,相当于sleep(0)的效果。
一、Sleep(long millis)方法
Sleep(long millis):在指定的毫秒内让当前正在执行的线程休眠(暂停执行)。sleep()让当前正在执行的线程休眠,CPU去执行其他线程,等到休眠时间结束后,该线程处于就绪状态。等待CPU的继续执行,是接着上一次的执行,而不是重新执行。
/* * 测试Sleep()方法 */ public class TestSleep { public static void main(String[] args) { //创建线程对象 MyThread th1=new MyThread(); MyThread th2=new MyThread(); //设置线程名字 th1.setName("线程1"); th2.setName("线程2"); //调用线程start()方法激活线程 th1.start(); th2.start(); } } //定义MyThread类去继承Thread class MyThread extends Thread{ //重写run()方法 public void run() { //利用for()循环进行打印输出 for(int i=0;i<5;i++) { //Thread.currentThread().getName()获取线程的名字 System.out.println(Thread.currentThread().getName()+":\t"+i); //调用Sleep(long millis)方法,实现每个进行打印一次就进入millis毫秒的休眠状态。 try { 4000 //每个进行打印一次就进入2000毫秒的休眠状态。 Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
二、yield()方法
yield()让当前正在执行的线程立即停止,CPU执行其他线程,而刚才正在执行的线程会马上处于就绪状态,没有等待的时间,相当于sleep(0)的效果。
/* * 测试Yeild()方法 */ public class TestYeild { public static void main(String[] args) { //创建线程对象 MyThread th1=new MyThread(); MyThread th2=new MyThread(); //设置线程名字 th1.setName("线程1"); th2.setName("线程2"); //调用线程start()方法激活线程 th1.start(); th2.start(); } } //定义MyThread类去继承Thread class MyThread extends Thread{ //重写run()方法 public void run() { //利用for()循环进行打印输出 for(int i=0;i<5;i++) { //Thread.currentThread().getName()获取线程的名字 System.out.println(Thread.currentThread().getName()+":\t"+i); //调用Sleep(long millis)方法,实现每个进行打印一次就进入millis毫秒的休眠状态。 Thread.yield(); } } }
相关文章推荐
- Java学习笔记之线程(二):线程的常用方法
- java 多线程学习笔记之 线程实现(线程阻塞)
- Java学习笔记73. 后台线程与setDaemon( )方法
- Java学习笔记78. 线程的中断入门 —— interrupt方法
- JAVA学习笔记49——线程概念+进程、线程区别+创建进程三种方法
- 你不知道的Java学习笔记23-- 线程优先级
- Java学习笔记75. 线程的睡眠方法
- Java学习笔记76. 线程的让步方法--yield
- JAVA学习笔记--多线程(二)线程常用方法
- Java学习笔记42:线程的几个方法和概念
- Java学习笔记—多线程(Java线程常用方法总结)
- [置顶] Java 多线程 学习笔记(二)停止线程的几种方法
- [学习笔记]java Enumeration接口方法的学习
- 【Java学习笔记】线程学习笔记
- JNI学习笔记5——本地方法处理java数组/引用问题/缓存jfieldID/jmethodID
- 《Java Concurrency in Practice》 学习笔记--第二章:线程安全
- Java多线程设计模式详解学习笔记——Introduction1 Java语言的线程
- Java学习笔记---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
- 第九章线程 --- java学习笔记
- Java基础学习笔记(十)线程的创建总结