一、LockSupport
1.1 LockSupport是什么
Java Api
LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程
1.正常
2.异常1
wait方法和notify方法,两个都去掉同步代码块。
3.异常2
1.是什么
通过park()和unpark(thread)方法来实现阻塞和唤醒线程的操作
2.主要方法
阻塞
permit默认是0,所以一开始调用park()方法,当前线程就会阻塞,直到别的线程将当前线程的permit设置为1时,park方法会被唤醒,然后,会将permit再次设置为0并返回。
唤醒
调用unpark(thread)方法后,就会将thread线程的许可permit设置成1(注意多次调用unpark方法,不会累加,permit值还是1),会自动唤醒thread线程,即之前阻塞中的LockSupport.park()方法会立即返回。
3.代码
正常+无锁块要求
之前错误的先唤醒后等待,LockSupport照样支持
4.总结
视频教程