java中锁的应用(ReentrantLock)
作者:互联网
package com.xielu.test; public class explicit { private static Lock lock = new ReentrantLock(); private static Condition odd = lock.newCondition(); private static COndition even = lock.newCondition(); private static int cnt = 1; private static final int MAX = 100; pulic static void main(String args[]){ Thread th1 = new Thread(){ @Override public void run(){ try{ lock.lock(); while(cnt <= MAX){ if(cnt%2 != 0){ System.out.println(cnt); cnt++; even.signalAll(); }else{ try{ odd.await(); }catch(Exception e){ e.printStackTrace(); } } } } finally { lock.unlock(); } } }; Thread th2 = new Thread(){ @Override public void run(){ try{ lock.lock(); while(cnt <= MAX){ if(cnt%2 == 0){ System.out.println(cnt); cnt++; odd.signalAll(); }else{ try{ even.await(); }catch(Exception e){ e.printStackTrace(); } } } } finally { lock.unlock(); } } }; th1.start(); th2.start(); } }
标签:cnt,java,int,lock,ReentrantLock,private,static,newCondition,中锁 来源: https://www.cnblogs.com/spillage/p/15470952.html