当前位置:网站首页>6.线程的休眠
6.线程的休眠
2022-08-08 06:23:00 【永远的攀登者】
6.线程的休眠
所谓的线程休眠指的是让线程执行速度稍微变慢一点。休眠方法如下
static void sleep(long millis) throws InterruptedException
观察:休眠的特点代码如下
public class TestSleep implements Runnable{
private int mony=10;
@Override
public void run() {
for(int i=0;i<100;i++){
try {
Thread.sleep(1000);//线程休眠
} catch (InterruptedException e) {
e.printStackTrace();
}
if(mony>0) {
System.out.print("购物,mony = " + this.mony--+";");
}
}
}
}
class MySleep{
public static void main(String[] args) {
TestSleep testSleep = new TestSleep();
Thread t1 = new Thread(testSleep);
Thread t2 = new Thread(testSleep);
Thread t3 = new Thread(testSleep);
t1.start();
t2.start();
t3.start();
}
}
运行结果如下
购物,mony = 9;购物,mony = 10;购物,mony = 10;购物,mony = 8;购物,mony = 8;购物,mony = 7;购物,mony = 6;购物,mony = 6;购物,mony = 5;购物,mony = 3;购物,mony = 4;购物,mony = 2;购物,mony = 0;购物,mony = 1;
从结果已经看到数据出现了问题。
结论:默认情况下,在休眠的时候如果设置了多个线程对象,那么所有的线程对象将一起进入到run方法(所谓的一起进入实际上是因为先后顺序实在太短了,但实际上有区别)就是因为这细微查到会导致运行结果错误。
边栏推荐
猜你喜欢
随机推荐
大恒工业相机搭建双目相机(软件)
正则表达式
2021 mathematical modeling national competition question B
课堂作业--凯撒加密
NULL和nullptr的区别
plt.axis(‘tight‘) 的含义
Anaconda安装使用
C语言三子棋游戏进阶版详解(包括多子棋)
树基础入门
5个网络问题,了解网络协议栈的哪些不为人知的八股文(来波千人福利)
简要概述深度学习和机器学期的区别
化工行业现状分析:聚烯烃市场消费量近2亿吨
form表单,formdata对象,实现文件上传
设备行业研究报告:激光打印机市场现状及未来发展趋势
在AWS CodeBuild中更新Lambda导致进程被占用(status error 255)的解决方案
利用pycharm自定义关键字颜色
Mysql(四)
基于Mysql的智慧医疗管理系统
C-默认构造函数什么情况下才真正被合成
Stream API





![[极客大挑战 2019]RCE ME 1](/img/10/b7e4f37c6e0c47f30a591ff4f46300.png)


![[BSidesCF 2020]Had a bad day1](/img/18/872d1c4a87608c618d2add0a65c4ba.png)
