美文网首页并发(个人收集)
JUC(六) - Lock 同步锁(1)

JUC(六) - Lock 同步锁(1)

作者: 21号新秀_邓肯 | 来源:发表于2020-05-18 13:59 被阅读0次

6.Lock 同步锁

  • 在 Java 5.0 之前,协调共享对象的访问时可以使用的机制只有 synchronized 和 volatile 。Java 5.0 后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内置锁不适用时,作为一种可选择的高级功能。
  • ReentrantLock 实现了 Lock 接口,并提供了与synchronized 相同的互斥性和内存可见性。但相较于synchronized 提供了更高的处理锁的灵活性。

6.1 案例一

class Ticket implements Runnable {

    private int tick = 100;

    private Lock lock = new ReentrantLock();

    @Override
    public void run() {
        while (lock != null) {
            //加锁
            lock.lock();

            try {
                if (tick > 0) {
                    //睡眠, 为了显示方便
                    try {
                        Thread.sleep(200);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName() + " 完成售票,余票为:" + --tick);
                }
            } finally {
                //释放锁
                lock.unlock();
            }
        }
    }
}

测试

    public static void main(String[] args) {
        Ticket ticket = new Ticket();

        new Thread(ticket, "1号窗口").start();
        new Thread(ticket, "2号窗口").start();
        new Thread(ticket, "3号窗口").start();
    }

相关文章

  • JUC(六) - Lock 同步锁(1)

    6.Lock 同步锁 在 Java 5.0 之前,协调共享对象的访问时可以使用的机制只有 synchronized...

  • JUC(六) - Lock 同步锁(2)

    6.2 案例二 1.生产者与消费者互动 1. 方式1 1.店员 2.生产者 3.消费者 结果 以上问题:重复补货,...

  • Lock锁 与 synchronized 比较

    Lock 定义:更强大的线程同步机制--显式定义同步锁对象来实现同步 特点: 在JUC(java.util.con...

  • java多线程安全加锁

    1,同步锁2,lock锁(更加灵活)3,锁对象的等待和唤醒 1,同步锁 2,lock锁(更加灵活),也就是把1中的...

  • juc-locks框架之接口

    juc-locks锁框架中一共就三个接口:Lock、Condition、ReadWriteLock 一、Lock接...

  • Java并发编程-Java中的锁

    主要内容有:Lock接口队列同步器重入锁读写锁LockSupport工具Condition接口 1.Lock接口 ...

  • 解决多线程安全问题的锁方式

    synchronized:隐式锁 同步代码块 同步方法示例代码,略。 jdk 1.5 后,同步锁 Lock 同步锁...

  • Java多线程同步3——同步锁

    Java提供了一种更强大的线程同步机制——通过显示定义同步锁对象来实现同步,同步锁由Lock对象充当。 Lock是...

  • 第五章_Java 中的锁

    目录 Lock 接口 队列同步器 重入锁 读写锁 LockSupport 工具 Condition 接口 Lock...

  • JUC学习笔记三

    JUC学习笔记三 用于解决多线程同步问题的方式 隐式锁(synchronized) 同步代码块 同步方法 显式锁(...

网友评论

    本文标题:JUC(六) - Lock 同步锁(1)

    本文链接:https://www.haomeiwen.com/subject/tvucohtx.html