//这里是有产生了两个独立的Test对象
Thread t1 = new Thread(new Test(true));
Thread t2 = new Thread(new Test(false));
相当于:
Test ts1 = new Test(true);
Test ts2 = new Test(false)
Thread t1 = new Thread(ts1);
Thread t2 = new Thread(ts2);
所以说内存中同时运行着两份这样的代码,
也就是说t1执行的代码的flag一直为ture,t2执行的代码的flag一直为false,他们互相独立,
但他们同时都抢着使用locka和lockb这两把锁
两个人同时去抢这两把锁会发生什么后果? |