Java 并发核心编程(一)
?
private final Lock lock = new ReentrantLock(); private int value; public int increment() { lock.lock(); try { return ++value; }finally{ lock.unlock(); } }}??
?
public class ReadWrite { private final ReadWriteLock lock = new ReentrantReadWriteLock(); private int value; public void increment(){ lock.writeLock().lock(); try{ value++; }finally{ lock.writeLock().unlock(); } }public int current(){ lock.readLock().lock(); try{ return value; }finally{ lock.readLock().unlock(); } }}?
?
public class Processor implements Runnable {private volatile boolean stop;public void stopProcessing(){stop = true;}public void run() {while (!stop) {//do processing}}}?
?
public class Counter{private AtomicInteger value = new AtomicInteger();private int value;public int increment() {return value.incrementAndGet();}}
?
public class TransactionManager {private static final ThreadLocal<Transaction> currentTransaction = new ThreadLocal<Transaction>() {@Overrideprotected Transaction initialValue() {return new NullTransaction();}};public Transaction currentTransaction() {Transaction current = currentTransaction.get();if(current.isNull()) {current = new TransactionImpl();currentTransaction.put(current);}return current;}}???
?
?