Java核心内库-线程-线程同步-同步锁(Lock)
2016-12-01 09:38
323 查看
同步锁(Lock)
Lock机制提供了比
下面代码使用Lock完成”吃苹果”的需求:
Lock机制提供了比
synchronized代码块和
synchronized方法更广泛的锁定操作,同步代码块和同步方法具有的功能Lock都有,除此之外更强大更体现面向对象。
下面代码使用Lock完成”吃苹果”的需求:
class Apple3 implements Runnable{ private int num = 500; //苹果总数 // 实例化一个Lock对象 private final Lock lock = new ReentrantLock(); @Override public void run() { for (int i=0;i<50;i++){ eat(); } } // 保证安全问题 private void eat(){ // 进入方法,立即加锁 lock.lock(); if (num>0){ try { System.out.println(Thread.currentThread().getName()+"吃了编号为"+num+"的苹果"); Thread.sleep(10); // 此时是为了模拟网络延迟 num--; }catch (Exception e){ e.printStackTrace(); }finally { // 释放锁 lock.unlock(); } } } } public class Main { public static void main(String[] args){ // 创建三个线程(同学)吃苹果 Apple3 a = new Apple3(); new Thread(a,"小A").start(); new Thread(a,"小B").start(); new Thread(a,"小C").start(); } }
相关文章推荐
- Java核心内库-线程-线程同步-同步方法
- 【Java基础之线程同步(二)】java线程同步:synchronized关键字,Lock接口以及可重入锁ReentrantLock
- Java核心内库-线程-线程同步-同步代码块
- Java核心内库-线程-通过实现Runnable接口的方式创建并启动线程
- Java线程同步-synchronized与lock
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- Java核心知识点学习----线程中如何创建锁和使用锁 Lock,设计一个缓存系统
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- java同步关键词解释、synchronized、线程锁(Lock)
- java线程学习5——线程同步之同步方法
- Java核心内库-线程-创建进程操作
- Java线程(七):锁对象Lock-同步问题更完美的处理方式 .
- Java核心内库-线程-线程通信-wait和notify方法介绍
- Java:多线程,线程同步,同步锁(Lock)的使用(ReentrantLock、ReentrantReadWriteLock)
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- java 同步锁 synchronized 死锁 lock锁 jion 线程结束
- Java线程(八):锁对象Lock-同步问题更完美的处理方式
- Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信
- Java线程同步Lock同步锁代码示例
- Java线程:锁对象Lock-同步问题更完美的处理方式