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停止运行)