Java并发(三)——JUC包下的锁和工具类

本文介绍了Java并发编程中的锁机制,包括同步锁和JUC包中的锁。同步锁主要通过`synchronized`关键字实现,而JUC包提供了更强大的锁框架,如`Lock`接口、`ReadWriteLock`接口、`Condition`接口以及`AbstractQueuedSynchronizer`等抽象类。文中详细讲解了`ReentrantLock`、`ReentrantReadWriteLock`、`CountDownLatch`、`CyclicBarrier`和`Semaphore`等工具类的使用和实现原理。
摘要由CSDN通过智能技术生成

原文 http://www.cnblogs.com/skywang12345/p/3496098.html

概述

根据锁的添加到Java中的时间,Java中的锁,可以分为“同步锁”“JUC包中的锁”

同步锁

实现方式

即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。

原理

同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度,从而在CPU上执行;而没有获取到同步锁的线程,必须进行等待,直到获取到同步锁之后才能继续运行。这就是,多线程通过同步锁进行同步的原理!

JUC包中的锁

这里写图片描述

实现方式

相比同步锁,JUC包中的锁的功能更加强大,它为锁提供了一个框架,该框架允许更灵活地使用锁,只是它的用法更难罢了。

内容

JUC包中的锁,包括:

接口

Lock接口ReadWriteLock接口Condition条件接口

抽象类

AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer三个抽象类

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值