Sleep应用
防止cpu占用百分百
单核cpu情况下
只写while true的缺点,占用了大部分的空间。
在没有利用cpu计算时,不要让while(true)空转浪费cpu。
示例代码
while(true){
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
常见方法–sleep
测试代码
@Slf4j(topic = "c.Test5")
public class Test5 {
static int r=0;
public static void main(String[] args) throws InterruptedException{
test1();
}
private static void test1() throws InterruptedException {
log.debug("开始");
Thread t1=new Thread(()->{
log.debug("开始");
try {
sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
log.debug("结束");
r=10;
},"t1");
t1.start();
log.debug("结果为:{}",r);
log.debug("结束");
}
}
运行结果
分析
主线程和t1并行执行,t1需要等待1s之后才算出结果。
常用方法join()
解决方法
等待某个线程运行结束
t1.start();
t1.join();
解决之后场景
学习JUC第二天打卡,不知道还能学几天,这几天叶小姐就是我的动力。