[Dubbo-4323]fix use AtomicInteger instead of volatile to inc (#4324)

Signed-off-by: slievrly <slievrly@163.com>
This commit is contained in:
jimin 2019-06-18 11:04:29 +08:00 committed by Xiaojie Li
parent 6f3a05ca82
commit 041a6addc1
1 changed files with 3 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
/** /**
@ -40,7 +41,7 @@ public class ExpiringMap<K, V> implements Map<K, V> {
*/ */
private static final int DEFAULT_EXPIRATION_INTERVAL = 1; private static final int DEFAULT_EXPIRATION_INTERVAL = 1;
private static volatile int expireCount = 1; private static AtomicInteger expireCount = new AtomicInteger(1);
private final ConcurrentHashMap<K, ExpiryObject> delegateMap; private final ConcurrentHashMap<K, ExpiryObject> delegateMap;
@ -263,7 +264,7 @@ public class ExpiringMap<K, V> implements Map<K, V> {
} }
public ExpireThread() { public ExpireThread() {
expirerThread = new Thread(this, "ExpiryMapExpire-" + expireCount++); expirerThread = new Thread(this, "ExpiryMapExpire-" + expireCount.getAndIncrement());
expirerThread.setDaemon(true); expirerThread.setDaemon(true);
} }