首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >螺纹安全断路器

螺纹安全断路器
EN

Stack Overflow用户
提问于 2012-11-18 23:00:33
回答 1查看 1.3K关注 0票数 0

我正在尝试实现断路器模式作为一种学习经验(我知道这个模式已经在多个框架中实现)。

我的简单的、非线程安全的实现看起来像这样

代码语言:javascript
复制
CircuitBreaker circuitBreaker = null;
    try {
        //get the current circuit breaker
        if (circuitBreaker.isOpen()) {
             throw new CircuitBreakerOpenException();
        } else {
             //proceed normally
             //or retry if half open
        }
    } catch (CircuitBreakerCallbackExecutionException e) {
        //update or replace the circuit breaker
    }

如何在不通过受保护的调用(电路断路器对象)进行同步的情况下实现线程安全?理想情况下,如果将失败阈值设置为10,那么如果远程系统出现故障,我不希望允许超过10个多线程调用通过保护。

到目前为止,我还没有发现任何似乎100%线程安全的开源框架。但也许尝试实现这一点是没有意义的。

这个问题更多的是关于线程安全,而不是关于断路器。

EN

回答 1

Stack Overflow用户

发布于 2012-11-18 23:07:54

如果我没理解错的话,isOpen方法访问的是一个共享变量,大概是一个boolean。您所需要做的就是生成布尔型volatile。这将确保健康检查线程对它的任何写操作对所有资源获取线程都是立即可见的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13441300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档