Java锁示例

以下是一段多线程锁机制示例代码:

 1 package lock;
 2 
 3 import java.util.concurrent.locks.Lock;
 4 import java.util.concurrent.locks.ReentrantLock;
 5 
 6 public class ThreadTest {
 7     private int j;
 8     private Lock lock = new ReentrantLock();
 9     
10     public static void main(String[] args){
11         ThreadTest tt = new ThreadTest();
12         for (int i=0; i<2; i++){
13             new Thread(tt.new Adder()).start();
14             new Thread(tt.new Subtractor()).start();
15         }
16     }
17     
18     private class Subtractor implements Runnable{
19         public void run(){
20             while (true){
21                 
22                 lock.lock();
23                 
24                 try{
25                     System.out.println("j--=" + j--);
26                 }finally{
27                     lock.unlock();
28                 }
29             }
30         }
31     }
32     
33     private class Adder implements Runnable{
34         public void run(){
35             while(true){
36                 
37                 lock.lock();
38                 try{
39                     System.out.println("j++" + j++);
40                 }finally{
41                     lock.unlock();
42                 }
43             }
44         }
45     }
46 }