JAVA的sleep方法让出CPU,给其他线程运行机会:

 1 package synsleep;
 2 public class Machine implements Runnable {
 3   private int a=1;  //共享数据
 4   public void run() {
 5     for(int i=0;i<1000;i++){
 6       synchronized(this){
 7         a+=i;
 8         try{
 9           Thread.sleep(500); //给其他线程运行的机会
10         }catch(InterruptedException e){throw new RuntimeException(e);}
11         a-=i;
12         System.out.println(Thread.currentThread().getName()+":"+a);
13       }
14     }
15   }
16
17   public void go(){
18     for(int i=0;i<1000;i++){
19         System.out.println(Thread.currentThread().getName()+":"+i);
20         Thread.yield();
21      }
22   }
23   public static void main(String args[]) throws InterruptedException{
24     Machine machine=new Machine();
25     Thread t1=new Thread(machine);
26     Thread t2=new Thread(machine);
27     t1.start();
28     t2.start();
29     machine.go();
30   }
31 }

转载于:https://www.cnblogs.com/djcsch2001/archive/2012/05/06/2486618.html

JAVA的sleep相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  3. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  4. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

  5. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  6. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  7. Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid

    Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...

  8. 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码

    java开发必知必会之看源码,而看源码的第一步则是找到源码

  9. java基本类型转换,随记

    java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...

  10. 科学处理java.lang.StackOverflowError: null异常

    java.lang.StackOverflowError: null异常处理 在项目运行中出现StackOverflowError 首先要检查在编码中是否有明显的递归编码,比如死循环或者无限循环调用. ...

最新文章

  1. 用python写计算机专业_自学open cv,用Python写的,本人是一名学生党,因为我本专业不是搞计算机的_cc霜_学生党_教育_教育其他...
  2. Python LDA主题模型实战
  3. 【电磁场实验作业】有限差分法(FDM)求解静电场电位分布
  4. 将本珊计算机组成原理,计算机组成原理,懂的老师帮忙解答下
  5. OpenCV cv::split用法的实例(附完整代码)
  6. 6,synchronized, lock 区别
  7. probability space 概率空间,Filtration,σ-algebras
  8. 蓝桥杯 历届试题 九宫重排
  9. JAVA不同类型数组重载_JAVA补课-DAY1:方法重载和数组
  10. uoj #118. 【UR #8】赴京赶考 水题
  11. Java多线程:线程停止
  12. 安装FFmpeg后,发现没有生成ffplay的解决办法
  13. MVVM架构~knockoutjs系列之验证信息自定义输出~续
  14. python xlwt操作excel
  15. nginx 启动报错 “/var/run/nginx/nginx.pid failed” 解决方法
  16. Delphi多层开发方案比较
  17. python之math_cmath
  18. 怎么将DWG文件有效转换为PDF文件
  19. Oracle VM VirtualBox 从虚拟软盘加载系统
  20. python截图工具和模拟鼠标键盘_python PyAutoGUI 模拟鼠标键盘操作和截屏功能

热门文章

  1. php统计大写字母个数,C++_C++统计中英文大小写字母、数字、空格及其他字符个数的方法,本文实例讲述了C++统计中英文 - phpStudy...
  2. 近年来量子计算机,近年来量子计算机研究的进展和困难.doc
  3. 优秀linux系统设计,Linux系统下设计优秀实用程序的艺术
  4. STM8学习笔记---定时器 TIM4功能实现
  5. POJ-1008(滑雪)
  6. linux性能测试工具的记录
  7. 基于QItemDelegate的例子1 SpinBoxDelegate
  8. Qt图形测绘窗口部件介绍
  9. P1144 最短路计数
  10. VMware ESXI 5.0群集+ISCSI存储