- </blockquote></div><div class="blockcode"><blockquote>/*class MyLock{
- static MyLock locka=new MyLock();
- static MyLock lockb=new MyLock();
- }*/
- class Tickets implements Runnable {
- Object locka=new Object();
- Object lockb=new Object();
-
-
- private boolean b;
- Tickets(boolean b){
- this.b=b;
- }
- public void run(){
- while(true){
- if(true==b){
- synchronized(locka){
- System.out.println(" if......locka");
- synchronized(lockb){
- System.out.println(" if......lockb");
- }
- }
-
- }else{
- synchronized(lockb){
- System.out.println(" else...lockb");
- synchronized(locka){
- System.out.println(" else...locka");
- }
- }
-
- }
- }
-
- }
复制代码
如上程序,我在类中新建两个Object对象,并用它当死锁程序的锁,可以程序竟然没有锁住。而我在类外又重新建了MyLock对象竟然锁住了,为什么啊,不是都是不同的两个对象么?
|
|