com.google.common.base.Ticker类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.2k)|赞(0)|评价(0)|浏览(89)

本文整理了Java中com.google.common.base.Ticker类的一些代码示例,展示了Ticker类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ticker类的具体详情如下:
包路径:com.google.common.base.Ticker
类名称:Ticker

Ticker介绍

[英]A time source; returns a time value representing the number of nanoseconds elapsed since some fixed but arbitrary point in time. Note that most users should use Stopwatch instead of interacting with this class directly.

Warning: this interface can only be used to measure elapsed time, not wall time.
[中]时间来源;返回一个时间值,表示从某个固定但任意的时间点开始经过的纳秒数。注意,大多数用户应该使用秒表,而不是直接与这个类交互。
警告:此界面只能用于测量运行时间,不能用于测量墙壁时间。

代码示例

代码示例来源:origin: google/guava

Ticker getTicker(boolean recordsTime) {
 if (ticker != null) {
  return ticker;
 }
 return recordsTime ? Ticker.systemTicker() : NULL_TICKER;
}

代码示例来源:origin: google/guava

/**
 * This method is a convenience for testing. Code should call {@link LocalCache#containsValue}
 * directly.
 */
@VisibleForTesting
boolean containsValue(Object value) {
 try {
  if (count != 0) { // read-volatile
   long now = map.ticker.read();
   AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
   int length = table.length();
   for (int i = 0; i < length; ++i) {
    for (ReferenceEntry<K, V> e = table.get(i); e != null; e = e.getNext()) {
     V entryValue = getLiveValue(e, now);
     if (entryValue == null) {
      continue;
     }
     if (map.valueEquivalence.equivalent(value, entryValue)) {
      return true;
     }
    }
   }
  }
  return false;
 } finally {
  postReadCleanup();
 }
}

代码示例来源:origin: org.sonatype.sisu/sisu-guava

/**
 * Returns the live internal entry for the specified key.
 */
ReferenceEntry<K, V> getLiveEntry(@Nullable Object key) {
 // does not impact recency ordering
 if (key == null) {
  return null;
 }
 int hash = hash(key);
 return segmentFor(hash).getLiveEntry(key, hash, ticker.read());
}

代码示例来源:origin: com.google.guava/guava-jdk5

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
}

代码示例来源:origin: google/j2objc

long now = ticker.read();
final Segment<K, V>[] segments = this.segments;
long last = -1L;
  for (int j = 0; j < table.length(); j++) {
   for (ReferenceEntry<K, V> e = table.get(j); e != null; e = e.getNext()) {
    V v = segment.getLiveValue(e, now);
    if (v != null && valueEquivalence.equivalent(value, v)) {
     return true;

代码示例来源:origin: google/guava

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 @Weak final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
 // super.toArray() may misbehave if size() is inaccurate, at least on old versions of Android.
 // https://code.google.com/p/android/issues/detail?id=36519 / http://r.android.com/47508
 @Override
 public Object[] toArray() {
  return toArrayList(this).toArray();
 }
 @Override
 public <E> E[] toArray(E[] a) {
  return toArrayList(this).toArray(a);
 }
}

代码示例来源:origin: google/guava

private long elapsedNanos() {
 return isRunning ? ticker.read() - startTick + elapsedNanos : elapsedNanos;
}

代码示例来源:origin: com.diffplug.guava/guava-cache

@Nullable
V get(Object key, int hash) {
  try {
    if (count != 0) { // read-volatile
      long now = map.ticker.read();
      ReferenceEntry<K, V> e = getLiveEntry(key, hash, now);
      if (e == null) {
        return null;
      }
      V value = e.getValueReference().get();
      if (value != null) {
        recordRead(e, now);
        return scheduleRefresh(e, e.getKey(), hash, value, now, map.defaultLoader);
      }
      tryDrainReferenceQueues();
    }
    return null;
  } finally {
    postReadCleanup();
  }
}

代码示例来源:origin: at.bestsolution.efxclipse.eclipse/com.google.guava

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
}

代码示例来源:origin: google/j2objc

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 @Weak final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
 // super.toArray() may misbehave if size() is inaccurate, at least on old versions of Android.
 // https://code.google.com/p/android/issues/detail?id=36519 / http://r.android.com/47508
 @Override
 public Object[] toArray() {
  return toArrayList(this).toArray();
 }
 @Override
 public <E> E[] toArray(E[] a) {
  return toArrayList(this).toArray(a);
 }
}

代码示例来源:origin: prestodb/presto

public void start()
{
  previousTimestamp = ticker.read();
}

代码示例来源:origin: google/guava

long now = ticker.read();
final Segment<K, V>[] segments = this.segments;
long last = -1L;
  for (int j = 0; j < table.length(); j++) {
   for (ReferenceEntry<K, V> e = table.get(j); e != null; e = e.getNext()) {
    V v = segment.getLiveValue(e, now);
    if (v != null && valueEquivalence.equivalent(value, v)) {
     return true;

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

@Nullable
V get(Object key, int hash) {
 try {
  if (count != 0) { // read-volatile
   long now = map.ticker.read();
   ReferenceEntry<K, V> e = getLiveEntry(key, hash, now);
   if (e == null) {
    return null;
   }
   V value = e.getValueReference().get();
   if (value != null) {
    recordRead(e, now);
    return scheduleRefresh(e, e.getKey(), hash, value, now, map.defaultLoader);
   }
   tryDrainReferenceQueues();
  }
  return null;
 } finally {
  postReadCleanup();
 }
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
}

代码示例来源:origin: google/guava

Stopwatch() {
 this.ticker = Ticker.systemTicker();
}

代码示例来源:origin: prestodb/presto

private long tickerNanos()
{
  return ticker.read();
}

代码示例来源:origin: wildfly/wildfly

/**
 * This method is a convenience for testing. Code should call {@link LocalCache#containsValue}
 * directly.
 */
@VisibleForTesting
boolean containsValue(Object value) {
 try {
  if (count != 0) { // read-volatile
   long now = map.ticker.read();
   AtomicReferenceArray<ReferenceEntry<K, V>> table = this.table;
   int length = table.length();
   for (int i = 0; i < length; ++i) {
    for (ReferenceEntry<K, V> e = table.get(i); e != null; e = e.getNext()) {
     V entryValue = getLiveValue(e, now);
     if (entryValue == null) {
      continue;
     }
     if (map.valueEquivalence.equivalent(value, entryValue)) {
      return true;
     }
    }
   }
  }
  return false;
 } finally {
  postReadCleanup();
 }
}

代码示例来源:origin: com.google.guava/guava-jdk5

@Nullable
V get(Object key, int hash) {
 try {
  if (count != 0) { // read-volatile
   long now = map.ticker.read();
   ReferenceEntry<K, V> e = getLiveEntry(key, hash, now);
   if (e == null) {
    return null;
   }
   V value = e.getValueReference().get();
   if (value != null) {
    recordRead(e, now);
    return scheduleRefresh(e, e.getKey(), hash, value, now, map.defaultLoader);
   }
   tryDrainReferenceQueues();
  }
  return null;
 } finally {
  postReadCleanup();
 }
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

abstract class AbstractCacheSet<T> extends AbstractSet<T> {
 final ConcurrentMap<?, ?> map;
 AbstractCacheSet(ConcurrentMap<?, ?> map) {
  this.map = map;
 }
 @Override
 public int size() {
  return map.size();
 }
 @Override
 public boolean isEmpty() {
  return map.isEmpty();
 }
 @Override
 public void clear() {
  map.clear();
 }
}

代码示例来源:origin: prestodb/presto

public Backoff(Duration maxFailureInterval)
{
  this(maxFailureInterval, Ticker.systemTicker());
}

相关文章

微信公众号

最新文章

更多