Thread.sleep();
Thread.yield();
相同点:
- 让线程暂停运行。
- 都是静态方法,可以直接调用。
不同点:
- sleep让线程从运行状态进入阻塞状态,但是不放开手中的资源。
- yield让线程从运行状态进入就绪状态,释放手中资源,再次等到CPU调度。
public class Test{ public static void main(String[] args) throws InterruptedException { //开启子线程 new Thread(()->{ for (int i = 0; i < 100; i++) { System.out.println("子线程"+i); } }).start(); //开启主线程,每循环10次进行yield for (int i = 0; i < 100; i++) { Thread.sleep(200); // Thread.yield(); System.out.println("主线程"+i); } } }