LockSupport的park方法和unpark方法
1.park
调用方法一般为:LockSupport.park();//当前线程阻塞
2.unpark
调用方法一般为: LockSupport.unpark(w1);//唤醒当前线程
3.调用顺序
当线程先调用了unpark方法后,该线许可为true,当线程进入到park,判断为true,继续运行
4.多次调用
多次调用unpark方法和调用一次unpark方法效果一样,因为在源码里面都是直接将_counter赋值为1,而不是加1。简单说就是:线程A连续调用两次LockSupport.unpark(B)方法唤醒线程B,然后线程B调用两次LockSupport.park()方法, 线程B依旧会被阻塞。因为两次unpark调用效果跟一次调用一样,只能让线程B的第一次调用park方法不被阻塞,第二次调用依旧会阻塞
5.interrupt相应标志位对park不阻塞
public class LockPark {
private static class WorK extends Thread{
private String name;
public WorK(String name){