以下是一段多线程锁机制示例代码:
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 }