package com.jiemyx.thread.demo02;
public class ThreadSleep01 implements Runnable{
//票数
private int ticketNums = 10;
@Override
public void run() {
while (true){
if (ticketNums<=0){
break;
}
//模拟网络延时,放大问题的发生性
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "-->拿到了第" + ticketNums-- + "票");
}
}
public static void main(String[] args) {
ThreadSleep01 ticket = new ThreadSleep01();
new Thread(ticket,"小明").start();
new Thread(ticket,"老师").start();
new Thread(ticket,"黄牛党").start();
}
}
运行结果:
小明-->拿到了第10票
黄牛党-->拿到了第9票
老师-->拿到了第8票
小明-->拿到了第7票
老师-->拿到了第6票
黄牛党-->拿到了第5票
小明-->拿到了第4票
黄牛党-->拿到了第3票
老师-->拿到了第2票
小明-->拿到了第1票
老师-->拿到了第0票
黄牛党-->拿到了第-1
package com.jiemyx.thread.demo02;
//模拟倒计时
public class ThreadSleep02 {
public static void main(String[] args) {
try {
tenDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void tenDown() throws InterruptedException {
int num = 10;
while (true){
Thread.sleep(1000);
System.out.println(num--);
if (num==0){
break;
}
}
}
}
运行结果:
10
9
8
7
6
5
4
3
2
1
package com.jiemyx.thread.demo02;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ThreadSleep03 {
public static void main(String[] args) {
//打印当前系统时间
Date startTime = new Date(System.currentTimeMillis());
while (true){
try {
Thread.sleep(1000);
System.out.println(new SimpleDateFormat("HH:mm:ss").format(startTime));
startTime = new Date(System.currentTimeMillis()); //更新当前时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果:
20:51:09
20:51:10
20:51:11
20:51:12
......
(在IDEA开发软件中,可以点旁边的红色正方形停止运行,或者ctrl+f2停止运行)
原文:https://www.cnblogs.com/Jiemyx/p/14778506.html