目录
1、应用CAS
避免了并发冲突,无锁,不会阻塞其他线程。
在计数方面,应用较为典型:
public class Counter {
private int count;
public Counter(){}
public synchronized int getCount(){
return count;
}
public synchronized void increase(){
count++;
}
}
// 修改为下面这种方式
public class Counter {
private AtomicInteger count = new AtomicInteger();
public Counter(){}
public int getCount(){
return count.get();
}
public void increase(){
count.getAndIncrement();
}
}
2、方法、对象加 synchronized
3、对象加Lock()
注意·加锁之后需要手动释放锁,不然会造成死锁。