gpt4 book ai didi

java - 非阻塞同步器?

转载 作者:行者123 更新时间:2023-12-02 05:53:14 26 4
gpt4 key购买 nike

Java中有“非阻塞锁”这样的东西吗?我的意思是,有没有一种方法可以保留同步的属性(原子保护和内存可见性 - 后者可以稍后出现,但第一个是我现在正在寻找的最重要的东西),但也有多个线程不必须等待对象的监视器吗?

我正在寻找的 - 只是澄清一下 - 不是 CAS 操作,而是 synchronized 关键字或 ReentrantLock 的实现。其工作原理类似于 Semaphore 但是具有实际的同步语义,不会阻止线程执行特定操作,例如调用 getter 和 setter。

最佳答案

您可以查看lock-striping技术(在concurrenthashmap中使用)来看看它是否满足您的需求。他们的基本思想是,将结构分成段,如果线程正在修改一个段,您仍然可以从其他段中读取。

您还可以尝试使用 CopyOnWriteArrayList,如果要修改数组,您可以创建一个副本,并在修改数组时将其用于任何读取操作。这里的问题是不能保证您获得最新的数据更新

上述两种方法都是为了构建并发系统而不是同步系统。

关于java - 非阻塞同步器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com