[英]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.