Java线程之线程的调度-休眠

白玉 IT哈哈

Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率。

这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制。

线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行。

线程休眠的方法是Thread.sleep(long millis)和Thread.sleep(long millis, int nanos),均为静态方法,那调用sleep休眠的哪个线程呢?简单说,哪个线程调用sleep,就休眠哪个线程。

/**

* Java线程:线程的调度-休眠

*

* @author leizhimin 2009-11-4 9:02:40

*/

publicclass Test {

publicstaticvoid main(String[] args) {

Thread t1 = new MyThread1();

Thread t2 = new Thread(new MyRunnable());

t1.start();

t2.start();

}

}

class MyThread1 extends Thread {

publicvoid run() {

for (int i = 0; i < 3; i++) {

System.out.println("线程1第" + i + "次执行!");

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

class MyRunnableimplements Runnable {

publicvoid run() {

for (int i = 0; i < 3; i++) {

System.out.println("线程2第" + i + "次执行!");

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

线程2第0次执行!

线程1第0次执行!

线程1第1次执行!

线程2第1次执行!

线程1第2次执行!

线程2第2次执行!

从上面的结果输出可以看出,无法精准保证线程执行次序。

java 5 线程 睡眠,Java线程之线程的调度-休眠相关推荐

  1. java 5 线程 睡眠,Java并发编程实例--5.线程睡眠

    有时候我们需要让线程在一段时间内不做任何事.例如某线程每个一小时检测一下传感器,剩余的时间不做任何事. 我们可以使用sleep()方法使线程睡眠,此期间不占用计算机资源. 这个方法接受一个整数表示睡眠 ...

  2. java线程 睡眠_java如何编写线程睡眠工具类包括随机睡眠时长

    最后给大家贴下这个睡眠工具类的完整代码 public class Sleep { /** * 睡眠n毫秒 * @param time */ public static void threadSleep ...

  3. java线程睡眠分析,java线程睡眠有关问题

    java线程睡眠问题 这是我的代码 package org.com.JframeDemo; public class ControlClass { private int readCount; //  ...

  4. Java中的Thread.sleep()– Java线程睡眠

    Java中的Thread.sleep (Thread.sleep in Java) Thread.sleep() method can be used to pause the execution o ...

  5. 从Java到JVM到OS线程睡眠

    前言 Java 中有时需要将线程进入睡眠状态,这时一般我们就会通过Thread.sleep使线程进入睡眠状态,接下去就看看执行该语句在 JVM 中做了什么. 简单例子 以下是一个简单的例子,使主线程睡 ...

  6. Java线程的调度(线程的优先级、线程睡眠、线程让步、线程插队)

    线程的优先级 : Java语言中线程有优先级,优先级高的线程会获得较多的运行机会. 当程序中有多个线程存在的时候,线程和线程之间的关系并非是平等的. Java语言中线程的优先级用整数表示,取值范围是1 ...

  7. 线程阻塞的概念 (Java 中的睡眠状态sleep 等待状态wait 礼让状态yield 自闭状态join suspend() 和 resume() )

    线程阻塞的概念: 线程阻塞通常是指一个线程在执行过程中暂停,以等待某个条件的触发. 参考文章1:什么是线程阻塞?为什么会出现线程阻塞? 参考文章2:线程阻塞

  8. java线程 睡眠_java线程睡眠问题

    package线程TEST包;publicclassxianchengextendsThread{inti=0;publicxiancheng(Stringname){setName(name);}@ ...

  9. Java基础学习总结(17)——线程

    2019独角兽企业重金招聘Python工程师标准>>> 一.线程的基本概念 线程理解:线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程,main()叫做主分支,也叫主线程. ...

最新文章

  1. Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()的使用
  2. 【OpenMP实现】任意线程数并行化快排结合Merge排序100w--10线程下只用0.06s
  3. ML之PPMCC:PPMCC皮尔逊相关系数(Pearson correlation coefficient)、Spearman相关系数的简介、案例应用之详细攻略
  4. dot全称_dot是什么币
  5. 在Linux系统的命令行中为MySQL创建用户的方法
  6. python 字符集utf-8|精简版(三分钟了解)
  7. 最贵5000!小米最贵旗舰MIX 3发布,雷军:干翻华为
  8. Java 获取两个日期之间的日期
  9. Android studio 导包时,容易出现的问题【包括最新版本的问题】
  10. 在其他的电脑上配置绿色Jre+tomcat运行环境
  11. unix域套接字UDP网络编程
  12. 【Linux】Debian 连接惠普打印机并共享
  13. 微信开发工具怎么模拟android环境,uni-app判断客户端环境是 安卓Android、iOS 、微信开发工具...
  14. win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
  15. 我太机智了……30条关于数据行业内涵笑话漫画
  16. 服务器系统开启telnet,Telnet怎么打开 Win7/Win8系统开启Telnet服务方法图解
  17. 面试突击63:distinct 和 group by有什么区别?
  18. linux 回收站创建
  19. Flutter | 和小老弟一起玩转Widget
  20. 计算机常见故障ppt,计算机硬件组成与常见故障排错.ppt

热门文章

  1. 商业互吹?扎克伯格:后悔没早点学微信
  2. “寒门状元之死”文章引热议 京东徐雷:三流文学作品 多看书吧
  3. 程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬
  4. android 分析boot.img,Android 系统准备知识-bootimg文件的结构
  5. java 接口隔离_关于接口隔离原则的一个实现:
  6. python故事_python的故事
  7. ffmpeg 无法找到libpostproc的问题
  8. Write operations are not allowed in read-only mode (FlushMode.MANUAL)
  9. 【linux】linux 安装 protobuf 2.5.0 版本
  10. 【Arthas】Arthas 导出堆栈信息