栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用LockSupport和AbstractQueuedSynchronizer的任何实际示例?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用LockSupport和AbstractQueuedSynchronizer的任何实际示例?

如果您要谈论使用锁定机制(甚至同步屏障),请使用

java.util.concurrent.Lock
。明显的建议是向
ReentrantLock
代表的用户a
Synch
。同步是一个AQS,它依次使用
LockSupport

一切都在您的幕后完成。

编辑:

我们不讨论

AbstractQueuedSynchronizer
(AQS)的实际用途。

尽管并发构造的用法可能非常不同,但它们都可以具有相同的基础功能。

即在某些条件下停放此线程。在其他情况下,唤醒线程。

这是一组非常广泛的指令,但是很显然,大多数并发结构都需要一些通用功能,这些功能才能为它们处理这些操作。输入AQS。有五个主要的同步障碍。

  • ReentrantLock
  • ReadLock
  • WriteLock
  • Semaphore
  • CountDownLatch

现在,所有这五个结构在使用它们时都具有非常不同的规则集。A

CountdownLatch
可以允许许多线程同时运行,但可以强制一个(或多个)线程等待,直到至少n个线程在所述锁存器上递减计数为止。

ReentrantLock
一次只强制一个线程进入关键部分,并将所有其他线程排队,以等待其完成。

ReadLock
允许任意数量的读取线程进入临界区,直到获得写锁为止。

这些示例可以继续进行,但是这里的大背景是它们都使用AQS。这是因为他们能够使用AQS提供的原始功能,并在其之上实现更复杂的功能。AQS允许您停放和唤醒线程(如果需要,可以中断线程),但是可以支持许多复杂的功能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号