本文整理了Java中java.util.concurrent.ConcurrentSkipListMap.putIfAbsent()
方法的一些代码示例,展示了ConcurrentSkipListMap.putIfAbsent()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ConcurrentSkipListMap.putIfAbsent()
方法的具体详情如下:
包路径:java.util.concurrent.ConcurrentSkipListMap
类名称:ConcurrentSkipListMap
方法名:putIfAbsent
暂无
代码示例来源:origin: lealone/Lealone
@Override
public V putIfAbsent(K key, V value) {
setMaxKey(key);
return skipListMap.putIfAbsent(key, value);
}
代码示例来源:origin: robovm/robovm
public V putIfAbsent(K key, V value) {
checkKeyBounds(key);
return m.putIfAbsent(key, value);
}
代码示例来源:origin: apache/ignite
/** {@inheritDoc} */
@Nullable @Override public V putIfAbsent(K k, V v) {
A.notNull(k, "k", v, "v");
V ret = super.putIfAbsent(k, v);
// Handle size only if put succeeded.
if (ret == null)
onPut();
return ret;
}
代码示例来源:origin: apache/hive
private TagState getTagState(String tag) {
TagState state = tagInfo.get(tag);
if (state == null) {
state = new TagState(tag);
TagState old = tagInfo.putIfAbsent(tag, state);
state = (old == null) ? state : old;
}
return state;
}
代码示例来源:origin: lealone/Lealone
private void doWaitSpin() {
// pick a random sleep interval based on the number of threads spinning, so that
// we should always have a thread about to wake up, but most threads are sleeping
long sleep = 10000L * pool.spinningCount.get();
sleep = Math.min(1000000, sleep);
sleep *= Math.random();
sleep = Math.max(10000, sleep);
long start = System.nanoTime();
// place ourselves in the spinning collection; if we clash with another thread just exit
Long target = start + sleep;
if (pool.spinning.putIfAbsent(target, this) != null)
return;
LockSupport.parkNanos(sleep);
// remove ourselves (if haven't been already) - we should be at or near the front, so should be cheap-ish
pool.spinning.remove(target, this);
// finish timing and grab spinningTime (before we finish timing so it is under rather than overestimated)
long end = System.nanoTime();
long spin = end - start;
long stopCheck = pool.stopCheck.addAndGet(spin);
maybeStop(stopCheck, end);
if (prevStopCheck + spin == stopCheck)
soleSpinnerSpinTime += spin;
else
soleSpinnerSpinTime = 0;
prevStopCheck = stopCheck;
}
代码示例来源:origin: apache/incubator-gobblin
private void onStart(long startTime) {
Long queueTime = queuedTasks.remove(this.underlyingTask.getTaskId());
long workUnitCreationTime = this.underlyingTask.getTaskContext().getTaskState().getPropAsLong(ConfigurationKeys.WORK_UNIT_CREATION_TIME_IN_MILLIS, 0);
long timeInQueue = startTime - queueTime;
long timeSinceWorkUnitCreation = startTime - workUnitCreationTime;
taskCreateAndRunTimer.update(timeSinceWorkUnitCreation, TimeUnit.MILLISECONDS);
LOG.debug(String.format("Task %s started. Saving queued time of %d ms to history.", underlyingTask.getTaskId(), timeInQueue));
queuedTaskTimeHistorical.putIfAbsent(System.currentTimeMillis(), timeInQueue);
runningTaskCount.inc();
}
}
代码示例来源:origin: apache/hbase
@VisibleForTesting
RegionStateNode createRegionStateNode(RegionInfo regionInfo) {
RegionStateNode newNode = new RegionStateNode(regionInfo, regionInTransition);
RegionStateNode oldNode = regionsMap.putIfAbsent(regionInfo.getRegionName(), newNode);
return oldNode != null ? oldNode : newNode;
}
代码示例来源:origin: twitter/distributedlog
@Override
public void onSuccess(Set<URI> uris) {
for (URI uri : uris) {
if (subNamespaces.containsKey(uri)) {
continue;
}
SubNamespace subNs = new SubNamespace(uri);
if (null == subNamespaces.putIfAbsent(uri, subNs)) {
subNs.watch();
logger.info("Watched new sub namespace {}.", uri);
notifyOnNamespaceChanges();
}
}
}
代码示例来源:origin: twitter/distributedlog
public FederatedZKLogMetadataStore(
DistributedLogConfiguration conf,
URI namespace,
ZooKeeperClient zkc,
OrderedScheduler scheduler) throws IOException {
this.conf = conf;
this.namespace = namespace;
this.zkc = zkc;
this.scheduler = scheduler;
this.forceCheckLogExistence = conf.getFederatedCheckExistenceWhenCacheMiss();
this.subNamespaces = new ConcurrentSkipListMap<URI, SubNamespace>();
this.log2Locations = new ConcurrentHashMap<String, URI>();
this.zkSubnamespacesPath = namespace.getPath() + "/" + ZNODE_SUB_NAMESPACES;
this.maxLogsPerSubnamespace = conf.getFederatedMaxLogsPerSubnamespace();
// fetch the sub namespace
Set<URI> uris = FutureUtils.result(fetchSubNamespaces(this));
for (URI uri : uris) {
SubNamespace subNs = new SubNamespace(uri);
if (null == subNamespaces.putIfAbsent(uri, subNs)) {
subNs.watch();
logger.info("Watched sub namespace {}", uri);
}
}
logger.info("Federated ZK LogMetadataStore is initialized for {}", namespace);
}
代码示例来源:origin: apache/hbase
public RegionFailedOpen addToFailedOpen(final RegionStateNode regionNode) {
final byte[] key = regionNode.getRegionInfo().getRegionName();
RegionFailedOpen node = regionFailedOpen.get(key);
if (node == null) {
RegionFailedOpen newNode = new RegionFailedOpen(regionNode);
RegionFailedOpen oldNode = regionFailedOpen.putIfAbsent(key, newNode);
node = oldNode != null ? oldNode : newNode;
}
return node;
}
代码示例来源:origin: apache/hive
buffer.setTag(tag);
while (true) { // Overwhelmingly executes once, or maybe twice (replacing stale value).
LlapDataBuffer oldVal = subCache.getCache().putIfAbsent(offset, buffer);
if (oldVal == null) {
代码示例来源:origin: io.dropwizard.metrics/metrics-core
/**
* Adds an old value with a fixed timestamp to the reservoir.
*
* @param value the value to be added
* @param timestamp the epoch timestamp of {@code value} in seconds
*/
public void update(long value, long timestamp) {
rescaleIfNeeded();
lockForRegularUsage();
try {
final double itemWeight = weight(timestamp - startTime);
final WeightedSample sample = new WeightedSample(value, itemWeight);
final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
final long newCount = count.incrementAndGet();
if (newCount <= size) {
values.put(priority, sample);
} else {
Double first = values.firstKey();
if (first < priority && values.putIfAbsent(priority, sample) == null) {
// ensure we always remove an item
while (values.remove(first) == null) {
first = values.firstKey();
}
}
}
} finally {
unlockForRegularUsage();
}
}
代码示例来源:origin: oracle/helidon
/**
* Adds an old value with a fixed timestamp to the reservoir.
*
* @param value the value to be added
* @param timestamp the epoch timestamp of {@code value} in seconds
*/
public void update(long value, long timestamp) {
rescaleIfNeeded();
lockForRegularUsage();
try {
final double itemWeight = weight(timestamp - startTime);
final WeightedSnapshot.WeightedSample sample = new WeightedSnapshot.WeightedSample(value, itemWeight);
final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
final long newCount = count.incrementAndGet();
if (newCount <= size) {
values.put(priority, sample);
} else {
Double first = values.firstKey();
if ((first < priority) && (values.putIfAbsent(priority, sample) == null)) {
// ensure we always remove an item
while (values.remove(first) == null) {
first = values.firstKey();
}
}
}
} finally {
unlockForRegularUsage();
}
}
代码示例来源:origin: networknt/light-4j
/**
* Adds an old value with a fixed timestamp to the reservoir.
*
* @param value the value to be added
* @param timestamp the epoch timestamp of {@code value} in seconds
*/
public void update(long value, long timestamp) {
rescaleIfNeeded();
lockForRegularUsage();
try {
final double itemWeight = weight(timestamp - startTime);
final WeightedSample sample = new WeightedSample(value, itemWeight);
final double priority = itemWeight / (1.0d - ThreadLocalRandom.current().nextDouble());
final long newCount = count.incrementAndGet();
if (newCount <= size) {
values.put(priority, sample);
} else {
Double first = values.firstKey();
if (first < priority && values.putIfAbsent(priority, sample) == null) {
// ensure we always remove an item
while (values.remove(first) == null) {
first = values.firstKey();
}
}
}
} finally {
unlockForRegularUsage();
}
}
代码示例来源:origin: alibaba/jstorm
/**
* Adds an old value with a fixed timestamp to the reservoir.
*
* @param value the value to be added
* @param timestamp the epoch timestamp of {@code value} in seconds
*/
public void update(long value, long timestamp) {
rescaleIfNeeded();
lockForRegularUsage();
try {
final double itemWeight = weight(timestamp - startTime);
final WeightedSnapshot.WeightedSample sample = new WeightedSnapshot.WeightedSample(value, itemWeight);
final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
final long newCount = count.incrementAndGet();
if (newCount <= size) {
values.put(priority, sample);
} else {
Double first = values.firstKey();
if (first < priority && values.putIfAbsent(priority, sample) == null) {
// ensure we always remove an item
while (values.remove(first) == null) {
first = values.firstKey();
}
}
}
} finally {
unlockForRegularUsage();
}
}
代码示例来源:origin: googleapis/google-cloud-java
.withZone(ZoneOffset.UTC)
.format(Instant.ofEpochMilli(System.currentTimeMillis())));
if (projects.putIfAbsent(project.getProjectId(), project) != null) {
return Error.ALREADY_EXISTS.response(
"A project with the same project ID (" + project.getProjectId() + ") already exists.");
代码示例来源:origin: apache/phoenix
/**
* Add the passed {@link KeyValue} to the set, only if one is not already set. This is equivalent
* to
* <pre>
* if (!set.containsKey(key))
* return set.put(key);
* else
* return map.set(key);
* </pre>
* except that the action is performed atomically.
* @param kv {@link KeyValue} to add
* @return the previous value associated with the specified key, or <tt>null</tt> if there was no
* previously stored key
* @throws ClassCastException if the specified key cannot be compared with the keys currently in
* the map
* @throws NullPointerException if the specified key is null
*/
public Cell putIfAbsent(Cell kv) {
return this.delegate.putIfAbsent(kv, kv);
}
}
代码示例来源:origin: forcedotcom/phoenix
/**
* Add the passed {@link KeyValue} to the set, only if one is not already set. This is equivalent
* to
* <pre>
* if (!set.containsKey(key))
* return set.put(key);
* else
* return map.set(key);
* </pre>
* except that the action is performed atomically.
* @param kv {@link KeyValue} to add
* @return the previous value associated with the specified key, or <tt>null</tt> if there was no
* previously stored key
* @throws ClassCastException if the specified key cannot be compared with the keys currently in
* the map
* @throws NullPointerException if the specified key is null
*/
public KeyValue putIfAbsent(KeyValue kv) {
return this.delegate.putIfAbsent(kv, kv);
}
}
代码示例来源:origin: palantir/atlasdb
private byte[] putIfAbsent(Table table, Key key, final byte[] contents) {
return table.entries.putIfAbsent(key, copyOf(contents));
}
代码示例来源:origin: apache/ignite
IgniteInternalFuture<AffinityInfo> old = affMap.putIfAbsent(key, fut0);
IgniteInternalFuture<AffinityInfo> old = affMap.putIfAbsent(key, fut0);
内容来源于网络,如有侵权,请联系作者删除!