Java多线程 线程安全和并发集合
•技术分享
829 0
volatile
关键字定义:volatile
是一个Java变量修饰符。它表示一个变量在任何时刻都可以被不同的线程看到。
作用:
volatile
变量的值,新值对于其他线程来说是立即可见的。volatile
变量的执行顺序。示例:
public class SharedResource {
private volatile boolean flag = false;
public void toggleFlag() {
flag = !flag;
}
public boolean isFlag() {
return flag;
}
}
AtomicInteger
)定义:Java的java.util.concurrent.atomic
包提供了一组原子类,用于进行锁-free的原子操作。
示例:
AtomicInteger count = new AtomicInteger(0);
// Increment
count.incrementAndGet();
// Decrement
count.decrementAndGet();
// Add
count.addAndGet(5);
优点:原子类能提供原子操作,但不需要使用synchronized
,因此在高并发环境下性能较好。
ConcurrentHashMap
, CopyOnWriteArrayList
)ConcurrentHashMap:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
int value = map.get("key");
CopyOnWriteArrayList:
CopyOnWriteArrayList<Integer> list = new CopyOnWriteArrayList<>();
list.add(1);
int item = list.get(0);
注意:这些并发集合虽然提高了并发性能,但也带来了额外的开销和复杂性。在选择它们之前,应该根据实际的需求和场景进行评估。
版权属于:戏人看戏博客网
本文链接:https://day.nb.sb/archives/1352.html
若无注明均为戏人看戏原创,转载请注明出处,感谢您的支持!