cost 300 ms
如何创建正确的懒惰 singleton? - How can I create the correct lazy singleton?

我有这个 class Intellij IDEA 向我展示了这个 warrnig: 双重检查锁定尝试按需以线程安全的方式初始化字段,同时避免同步成本。 不幸的是,在未声明为 volatile 的字段上使用时,它不是线程安全的。 当使用 Java 1.4 或更早版本时,双重检查锁定对可变字段不起作 ...

异步单任务执行器 - Asynchronous single task executor

我怀疑以下解决方案是否适用于以下问题: 在多用户应用程序中,任何用户都可以通过单击按钮开始处理给定数据处理需要很长时间,因此它应该异步执行以不阻塞 GUI 如果一个用户已经开始处理,其他请求应该被拒绝,直到它完成以下是用于解决此问题的代码: public class Processor { ...

没有 volatile 的双重检查锁是错误的? - double check lock without volatile is wrong?

我使用 jdk1.8。 我认为没有 volatile 的双重检查锁是正确的。 我多次使用 countdownlatch 测试,对象是单例。 如何证明它一定需要“volatile”? 更新 1 抱歉,我的代码没有格式化,因为我无法接收一些 JavaScript 公共类 DCLTest { } ...

java 中 static 字段的双重检查锁定 - Double checked locking for static fields in java

我正在尝试使用Bloch 的有效 java 建议修复双重检查锁定。 但是我的代码中的一个小变化是字段类型是 static 并且创建字段类型的方法是实例方法。 以下用于创建 static 字段的变体是否有效? 我无法将方法 static 方法用于 // static 字段的惰性初始化持有者 class ...

没有 volatile 的双重检查锁定(但使用 VarHandle 释放/获取) - double check locking without volatile (but with VarHandle release/acquire)

在某种程度上,这个问题相当简单。 假设我有这个 class: 我想为它提供一个singleton工厂。 我可以做(可能)显而易见的事情。 我不会提及枚举可能性或任何其他,因为它们对我不感兴趣。 我可以以更高的代码复杂性为代价摆脱一次volatile read : 这几乎就是我们的代码近十年来一直在 ...

在多线程环境中设置值时如何删除双重检查 - How to remove double checking when setting a value in a multithreaded environment

我有一个存储字段 archiveDate 的archiveDate Checker 。有几个线程可以设置此字段。 他们仅在该字段尚不可用时才记录该字段。 如果其中一个线程记录了日期,则其他线程不必覆盖它。 还有另一个线程( Checker本身)可以删除日期。 只有设置了日期,它才会删除日期。 现在我 ...

通过 C++ 中的“顺序一致原子”语义实现 DCL(双重检查锁定)线程安全吗? - Is DCL (double-checked locking) thread-safe when implemented by ‘Sequentially Consistent Atomics’ semantics in C++?

这是一段代码,它是由 C++ 中的“顺序一致原子”语义实现的 DCL(双重检查锁定)。 代码如下: 我认为:'1'不仅包括读写命令,还包括调用命令,那么调用命令可能在'2'后面重新排序; 那么'3'可能会得到一个不安全的'tmp'指针。 所以,我想问一下:上面的代码是线程安全的吗? ...

通过 std::unique_ptr 的 LazyArray 模板,这是双重检查习语的正确实现吗? - LazyArray template via std::unique_ptr, is this a proper implementation of the double-check idiom?

这段代码是否使用 C++11 atomic 安全地实现了双重检查习语? 我在“C++ 编程语言第 4 版”中看到了。 一个使用atomic<bool>的示例,我尽我所能保持相同,但我没有信心。 另外,这个可以改进吗? 由于once_flag的存储开销,我想避免call_once 。 ...

为什么同时使用局部变量和volatile来同时进行DCL(如Sonar工具所建议)? - Why use both local variable and volatile both togather for DCL (as suggested by Sonar tool)?

有一些相关的问题,但是作为这些问题的重点,更多的是volatile,而不是局部变量的使用,因此,我发布了一个新问题,请参阅下面的问题。 声纳源规则有一个代码,根据该代码,以下代码正确无误,并解决了DCL的问题 我了解我们还有其他选择(比复杂的DCL更好),例如 枚举或 ...

为什么在openJDK的System.console()实现中未正确使用双重检查锁定? - Why is double-checked locking not used properly in the implementation of System.console() in the openJDK?

在openJDK源代码中, System.console()实现如下: IMO,此实现缺少双重检查锁定 ,也就是说在synchronized块内不存在null 测试 。 在这种情况下, 假设有2个线程,线程I进入synchronized 监视器 ,同时线程II恰巧在同一synchron ...

易读冲突 - Volatile reads clash

假设我们使用双重检查锁定实例化一个单例: 问题在于程序的语义,如果instance变量将是易失的并且将取消双重检查锁定。 该类只会实例化一次吗? 或者换一种说法,volatile是否可以以两个线程看到引用的null值并执行双重实例化的方式发生冲突? 我知道volatile ...

双重检查锁优化,以在Swift中实现线程安全的延迟加载 - Double check lock optimization to implement thread-safe lazy-loading in Swift

我已经实现了我认为在类中进行双重检查锁定以实现线程安全的延迟加载。 万一你想知道,这是我目前正在研究的DI库 。 我正在谈论的代码如下 : 逻辑是允许并发读取isSet因此对instance的访问可以从不同的线程并行运行。 为了避免竞争条件(这是我不能100%肯定的部分), ...

仔细检查锁定问题,c ++ - Double-check locking issues, c++

为了简单起见,我离开了其余的实现,因为它与此无关。 考虑在现代C ++设计中使用的双重检查的经典实现。 在这里,作者坚持认为我们避免了竞争条件。 但是我读过一篇文章,不幸的是我记得很清楚,其中描述了以下流程。 线程1首先输入if语句 线程1进入互斥体端进入第二个if ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM