账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    LockSupport.unpark方法可以发生在park之前,为什么我的代码还是会阻塞
    32
    0
    在main方法中,有4个LockSupport.unpark方法,当t1线程运行时应该Lock.park()不应该堵塞代码,但是实际是堵塞的为什么,为什么main方法中注释中的方法就可以输出11111,park方法没有阻塞当前进程。
    public class LockSupportDemo {
        public static Object u = new Object();
        static ChangeObjectThread t1 = new ChangeObjectThread("t1");
        
    
        public static class ChangeObjectThread extends Thread{
    
            public ChangeObjectThread(String name)
            {
                super.setName(name);
            }
    
            @Override
            public void run() {
                synchronized (u)
                {
    
                    LockSupport.park(Thread.currentThread());
                    System.out.println("in "+ getName());
                    if(Thread.interrupted())
                    {
                        System.out.println(getName()+" interrupted");
                    }
                }
                System.out.println(getName() +"isOver");
    
            }
        }
    
        public static void main(String[] args) throws InterruptedException {
            LockSupport.unpark(t1);
            LockSupport.unpark(t1);
            LockSupport.unpark(t1);
            LockSupport.unpark(t1);
            LockSupport.unpark(t1);
            t1.start();
            /**
            *LockSupport.unpark(Thread.cuurentThread);
            *LockSupport.unpark(Thread.cuurentThread);
            *Lock.park();
            *System.out.println("11111");
            *
            */
        }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 惜nī如命 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部