1 2 package SOFA.Util; 3 4 8 public class Lock { 9 10 private boolean locked; 11 12 15 public Lock(boolean l) { 16 locked = l; 17 } 18 19 22 synchronized public boolean lock() { 23 try { 24 while (locked) 25 wait(); 26 locked = true; 27 } catch (InterruptedException e) { 28 return false; 29 } 30 return true; 31 } 32 33 36 synchronized public boolean tryLock() { 37 if (locked) 38 return false; 39 else { 40 locked = true; 41 return true; 42 } 43 } 44 45 47 synchronized public void unlock() { 48 locked = false; 49 notify(); 50 } 51 52 53 synchronized public boolean isLocked() { 54 return locked; 55 } 56 } 57 | Popular Tags |