01: package demo.bank.transaction.explicit;
02:
03: public class Lock
04:
05: {
06:
07: private boolean locked;
08:
09: public Lock()
10:
11: {
12:
13: locked = false;
14:
15: }
16:
17: public synchronized void lock()
18:
19: {
20:
21: while (locked)
22:
23: {
24:
25: try
26:
27: {
28:
29: wait();
30:
31: }
32:
33: catch (InterruptedException ie)
34:
35: {
36: }
37:
38: }
39:
40: locked = true;
41:
42: }
43:
44: public synchronized void unlock()
45:
46: {
47:
48: locked = false;
49:
50: notifyAll();
51:
52: }
53:
54: }
|