[英]What is the safest way to check AtomicBoolean and perform something?
有什么方法可以使这种操作像一种操作(一种自定义原子操作)吗?
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());
}
您不能使用AtomicBoolean
来使其他操作或操作序列原子化。
如果需要使本质上非原子的操作或序列原子化,则需要使用锁定; 例如原始互斥锁, Lock
或类似的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.