package org.copico.study.thread;
import java.util.concurrent.TimeUnit;
import static java.lang.Thread.State.TERMINATED;
public class Thread02YieldAndSleep {
public static void main(String[] args) throws InterruptedException {
testSleepTread();
testYield();
}
private static void testYield() {
Thread yieldThread = new Thread(Thread::yield);
System.out.println("yieldThread线程状态=" + yieldThread.getState());
yieldThread.start();
while (true) {
Thread.State state = yieldThread.getState();
System.out.println("yieldThread线程状态=" + state);
if (state == TERMINATED)
return;
}
}
private static void testSleepTread() throws InterruptedException {
Thread sleepThread = new Thread(() -> {
try {
System.out.println("sleep开始");
TimeUnit.SECONDS.sleep(3);
System.out.println("sleep结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
System.out.println("sleepThread线程状态=" + sleepThread.getState());
sleepThread.start();
System.out.println("sleepThread线程状态=" + sleepThread.getState());
while (true) {
Thread.State state = sleepThread.getState();
System.out.println("sleepThread线程状态=" + state);
if (state == TERMINATED)
return;
TimeUnit.SECONDS.sleep(1);
}
}
}