标签:
public class ReenterLock implements Runnable{ public static ReentrantLock lock=new ReentrantLock(); public static int i=0; @Override public void run() { for(int j=0;j<10000000;j++){ lock.lock(); try{ i++; }finally{ lock.unlock(); } } } public static void main(String[] args) throws InterruptedException { ReenterLock tl=new ReenterLock(); Thread t1=new Thread(tl); Thread t2=new Thread(tl); t1.start();t2.start(); t1.join();t2.join(); System.out.println(i); } }
重用lock:
1 public class ReenterLock2 implements Runnable{ 2 public static ReentrantLock lock=new ReentrantLock(); 3 public static int i=0; 4 @Override 5 public void run() { 6 for(int j=0;j<10000000;j++){ 7 lock.lock(); 8 lock.lock(); 9 try{ 10 i++; 11 }finally{ 12 lock.unlock(); 13 lock.unlock(); 14 } 15 } 16 } 17 public static void main(String[] args) throws InterruptedException { 18 ReenterLock2 tl=new ReenterLock2(); 19 Thread t1=new Thread(tl); 20 Thread t2=new Thread(tl); 21 t1.start();t2.start(); 22 t1.join();t2.join(); 23 System.out.println(i); 24 } 25 }
Java并发编程示例代码-----ReentrantLock
标签:
原文地址:http://www.cnblogs.com/dodoJavaLearner/p/5429077.html