LockSupport是什么
用于创建锁和其他同步类的基本线程阻塞原语。
核心就是park()
和unpark()
方法
-
park()
方法是阻塞线程 -
unpark()
方法是解除阻塞线程
3种让线程等待和唤醒的方法
-
使用Object中的
wait()
方法让线程等待,使用Object中的notify()
方法唤醒线程 -
使用JUC包中
Condition
的await()
方法让线程等待,使用signal()
方法唤醒线程 -
LockSupport
类可以阻塞当前线程以及唤醒指定被阻塞的线程
①Object类中的wait和notify方法实现线程等待和唤醒
- wait和notify必须加同步块或者方法里面
- 先wait后notify
public class LockSupportDemo
{
public static void main(String[] args)
{
Object objectLock = new Object();
new Thread(() -> {
synchronized (objectLock) {
System.out.println(Thread.currentThread().getName()+"\t ---- come in");
try {
objectLock.wa