线程休眠
作者:互联网
线程休眠
-
sleep(时间)指定当前线程阻塞的毫秒数
-
sleep存在异常InteruptedException
-
sleep时间达到后线程进入就绪状态
-
sleep可以模拟网络延时,倒计时等
-
每一个对象都有一个锁,sleep不会释放锁!
package com.hua.demo; //模拟网络延时:放大问题的发生性 public class TestSleep implements Runnable{ //票数 private int ticketNums = 10; @Override public void run() { while(true){ if (ticketNums<=0){ break; } //模拟延时 try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"买到了第"+ticketNums--+"张票"); } } public static void main(String[] args) { TestSleep ticket = new TestSleep(); new Thread(ticket,"小明").start(); new Thread(ticket,"张三").start(); new Thread(ticket,"黄牛").start(); } }
package com.hua.demo; import java.text.SimpleDateFormat; import java.util.Date; public class TestSleep2{ public static void main(String[] args) { //打印当前系统时间 Date startTime = new Date(System.currentTimeMillis());//获取系统当前时间 while (true) { try { new Thread().sleep(1000); System.out.println(new SimpleDateFormat("HH:mm:ss").format(startTime)); startTime = new Date(System.currentTimeMillis());//更新系统当前时间 } catch (InterruptedException e) { e.printStackTrace(); } } } //模拟倒计时 public static void tenDown() throws InterruptedException { int num = 10; while(true){ new Thread().sleep(1000); System.out.println(num--); if (num<0){ break; } } } }
标签:System,休眠,线程,new,Date,sleep,public 来源: https://www.cnblogs.com/1982king/p/15902590.html