线程学习二,ReentrantLock.Lock实现线程互斥
2017-06-05 10:26
225 查看
/* ReentrantLock.Lock实现线程互斥 */ package threadTest; import java.util.concurrent.locks.ReentrantLock; /** *ReentrantLock 的效率比 */ public class LockThread { ReentrantLock lock1 = new ReentrantLock(); // ReentrantLock lock2 = new ReentrantLock(); class LockInitFirst implements Runnable{ public void run() { lock1.lock(); try { System.out.println("lock1"); Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); }finally{ lock1.unlock(); } } } class LockInitSecond implements Runnable{ public void run() { lock1.lock(); try { System.out.println("lock2"); Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); }finally { lock1.unlock(); } } } private LockInitFirst getLockInitFirst(){ LockInitFirst lif = new LockInitFirst(); return lif; } private LockInitSecond getLockInitSecond(){ LockInitSecond lis = new LockInitSecond(); return lis; } public static void main(String[] args) { LockThread lt = new LockThread(); // LockInitFirst lifirst = lt.new LockInitFirst();可以用这种方式new出一个内部类 Thread th1 = new Thread(lt.getLockInitFirst()); Thread th2 = new Thread(lt.getLockInitSecond()); th1.start(); th2.start(); } }
相关文章推荐
- 轻松学习java可重入锁(ReentrantLock)的实现原理)
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- java中使用ReentrantLock锁中的Condition实现三个线程之间通信,交替输出信息
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- ReentrantLock使用Condition实现通知部分线程
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- ReentrantLock,实现3个线程按顺序打印数字
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 轻松学习java可重入锁(ReentrantLock)的实现原理
- 利用ReentrantLock的Condition实现线程之间的通信
- Java中使用ReentrantLock控制线程执行顺序
- 学习笔记一:使用Mutex实现线程之间互斥
- Java synchronized以及ReentrantLock 学习
- 线程学习之--传统线程互斥
- 多线程算法学习一LockOne和LockTwo(python实现)