1. 程式人生 > 其它 >多執行緒之執行緒休眠

多執行緒之執行緒休眠

模擬網路延時
package com.yeyue.demo01;

//模擬網路延時,放大問題的發生性
public class TestSleep1 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) {
TestThread4 ticket = new TestThread4();

new Thread(ticket,"小明").start();
new Thread(ticket,"老師").start();
new Thread(ticket,"黃牛黨").start();
}
}
模擬倒計時
package com.yeyue.demo01;

public class TestSleep2 {

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;
}
}
}
}
實時獲取當前時間
package com.yeyue.demo01;

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 {
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){
Thread.sleep(1000);
System.out.println(num--);
if(num<=0){
break;
}
}
}
}