在多线程程序中,同时对同一数据进行读写操作可能导致并发冲突。为了避免并发冲突,可以采用以下几种措施:
示例代码:
synchronized (obj) { // critical section }
Lock lock = new ReentrantLock(); lock.lock(); try { // critical section } finally { lock.unlock(); }
示例代码:
AtomicInteger count = new AtomicInteger(0); count.incrementAndGet();
示例代码:
class Immutable { private final int value;
public Immutable(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
示例代码:
BlockingQueue