线程的礼让、等待、睡眠是Java 并发编程中常用的三种方法
下面是我总结的线程这三种方法的一些区别
1. 礼让(yield):线程礼让是指当前线程主动让出 CPU 资源,让其他线程先占用 CPU 进行运行。通过 `Thread.yield()` 方法来实现线程礼让。需要注意的是,线程礼让仅会将当前线程的 CPU 时间片让给其他线程,但并不会改变当前线程的状态。
2. 等待(wait):线程等待是指当前线程进入等待状态,等待其他线程通知自己执行。在等待期间,当前线程会释放掉它所持有的锁,并进入等待队列中。在 Java 中,等待通过调用对象的 `wait()` 或 `wait(long)` 方法实现。需要注意的是,`wait()` 方法需要在同步块或同步方法中被调用。
3. 睡眠(sleep):线程睡眠是指当前线程停止执行,让出 CPU 资源,并进入到阻塞状态,但不会释放锁。通过调用 `Thread.sleep(long)` 方法实现,其中参数为线程休眠的时间,单位为毫秒。
总之,在并发编程中,当多个线程共享 CPU 资源时,常常需要使用这三种方式来合理控制线程的执行顺序和状态。需要根据实际情况,选择适当的方式来运用。