Java7新特性(四)并发 4 Atomic、ConcurrentHashMap对象

来源:互联网 发布:湍流问题知乎 编辑:程序博客网 时间:2024/06/12 01:27

本文主要根据《Java程序员修炼之道》整理的代码笔记片段

Java 5 原子类操作,采用现代并发 序列号机制

public class AtomicClass {private final AtomicLong sequenceNumber = new AtomicLong(0);//序列号机制,利用原子操作方法public long nextID(){return sequenceNumber.getAndIncrement();}public long decreID(){return sequenceNumber.getAndDecrement();}public long set(long newValue){return sequenceNumber.getAndSet(newValue);}public long add(long delta){return sequenceNumber.getAndAdd(delta);}}

Java 5 ConcurrentHashMap  无显示同步、安全高效   putIfAbsent remove replace方法

public class ExampleTimingBode implements IBlogNode {private final String identifier;private final ConcurrentHashMap<Update ,Long> arrivalTime = new ConcurrentHashMap<>();//无显示同步、安全高效   putIfAbsent remove replacepublic ExampleTimingBode(String identifier_){identifier=identifier_;}@Overridepublic String getIdent() {return identifier;}@Overridepublic void propagateUpdate(Update upd_, IBlogNode backup_) {long current = System.currentTimeMillis();arrivalTime.putIfAbsent(upd_, current);}@Overridepublic boolean confirmUpdate(IBlogNode other_, Update update_) {Long recvd = arrivalTime.get(update_);return recvd!=null;}}


原创粉丝点击