有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查原子布尔值并执行某些操作最安全的方法是什么?

有没有办法让这个操作像一个操作on(一种自定义原子)一样

 if (!isShutdownStarted.get()
            && !QUEUE.contains(request.getUserEmail())) {
        try {
            QUEUE.add(request.getUserEmail());
        } 
 //...
 }

其他线程中的代码

@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
    PaymentClient.isShutdownStarted.set(true);
    while (!PaymentClient.QUEUE.isEmpty());
}

共 (1) 个答案

  1. # 1 楼答案

    不能使用AtomicBoolean使另一个操作或操作序列原子化

    如果需要进行本质上非原子的操作或原子序列,则需要使用锁定;e、 一个基本互斥体,一个Lock或类似的东西