com.github.benmanes.caffeine.cache.Caffeine.getExecutor()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(4.7k)|赞(0)|评价(0)|浏览(161)

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

Caffeine.getExecutor介绍

暂无

代码示例

代码示例来源:origin: ben-manes/caffeine

AsyncLoader(AsyncCacheLoader<? super K, V> loader, Caffeine<?, ?> builder) {
 this.executor = requireNonNull(builder.getExecutor());
 this.loader = requireNonNull(loader);
}

代码示例来源:origin: ben-manes/caffeine

@SuppressWarnings({"unchecked", "rawtypes"})
@Nullable <K1 extends K, V1 extends V> RemovalListener<K1, V1> getRemovalListener(boolean async) {
 RemovalListener<K1, V1> castedListener = (RemovalListener<K1, V1>) removalListener;
 return async && (castedListener != null)
   ? new AsyncRemovalListener(castedListener, getExecutor())
   : castedListener;
}

代码示例来源:origin: ben-manes/caffeine

UnboundedLocalCache(Caffeine<? super K, ? super V> builder, boolean async) {
 this.data = new ConcurrentHashMap<>(builder.getInitialCapacity());
 this.statsCounter = builder.getStatsCounterSupplier().get();
 this.removalListener = builder.getRemovalListener(async);
 this.isRecordingStats = builder.isRecordingStats();
 this.writer = builder.getCacheWriter();
 this.executor = builder.getExecutor();
 this.ticker = builder.getTicker();
}

代码示例来源:origin: ben-manes/caffeine

@Test
public void executor() {
 Caffeine<?, ?> builder = Caffeine.newBuilder().executor(MoreExecutors.directExecutor());
 assertThat(builder.getExecutor(), is(MoreExecutors.directExecutor()));
 builder.build();
}

代码示例来源:origin: ben-manes/caffeine

/** Creates an instance based on the builder's configuration. */
protected BoundedLocalCache(Caffeine<K, V> builder,
  @Nullable CacheLoader<K, V> cacheLoader, boolean isAsync) {
 this.isAsync = isAsync;
 this.cacheLoader = cacheLoader;
 executor = builder.getExecutor();
 writer = builder.getCacheWriter();
 evictionLock = new ReentrantLock();
 weigher = builder.getWeigher(isAsync);
 drainBuffersTask = new PerformCleanupTask();
 nodeFactory = NodeFactory.newFactory(builder, isAsync);
 data = new ConcurrentHashMap<>(builder.getInitialCapacity());
 readBuffer = evicts() || collectKeys() || collectValues() || expiresAfterAccess()
   ? new BoundedBuffer<>()
   : Buffer.disabled();
 accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
 if (evicts()) {
  setMaximum(builder.getMaximum());
 }
}

代码示例来源:origin: com.github.ben-manes.caffeine/caffeine

private static <K, V> CacheLoader<K, V> asyncLoader(
  AsyncCacheLoader<? super K, V> loader, Caffeine<?, ?> builder) {
 Executor executor = builder.getExecutor();
 return new CacheLoader<K, V>() {
  @Override public V load(K key) {
   @SuppressWarnings("unchecked")
   V newValue = (V) loader.asyncLoad(key, executor);
   return newValue;
  }
  @Override public V reload(K key, V oldValue) {
   @SuppressWarnings("unchecked")
   V newValue = (V) loader.asyncReload(key, oldValue, executor);
   return newValue;
  }
  @Override public CompletableFuture<V> asyncReload(K key, V oldValue, Executor executor) {
   return loader.asyncReload(key, oldValue, executor);
  }
 };
}

代码示例来源:origin: com.github.ben-manes.caffeine/caffeine

@SuppressWarnings({"unchecked", "rawtypes"})
@Nullable <K1 extends K, V1 extends V> RemovalListener<K1, V1> getRemovalListener(boolean async) {
 RemovalListener<K1, V1> castedListener = (RemovalListener<K1, V1>) removalListener;
 return async && (castedListener != null)
   ? new AsyncRemovalListener(castedListener, getExecutor())
   : castedListener;
}

代码示例来源:origin: com.github.ben-manes.caffeine/caffeine

UnboundedLocalCache(Caffeine<? super K, ? super V> builder, boolean async) {
 this.data = new ConcurrentHashMap<>(builder.getInitialCapacity());
 this.statsCounter = builder.getStatsCounterSupplier().get();
 this.removalListener = builder.getRemovalListener(async);
 this.isRecordingStats = builder.isRecordingStats();
 this.writer = builder.getCacheWriter();
 this.executor = builder.getExecutor();
 this.ticker = builder.getTicker();
}

代码示例来源:origin: com.github.ben-manes.caffeine/caffeine

/** Creates an instance based on the builder's configuration. */
protected BoundedLocalCache(Caffeine<K, V> builder,
  @Nullable CacheLoader<K, V> cacheLoader, boolean isAsync) {
 this.isAsync = isAsync;
 this.cacheLoader = cacheLoader;
 executor = builder.getExecutor();
 writer = builder.getCacheWriter();
 evictionLock = new ReentrantLock();
 weigher = builder.getWeigher(isAsync);
 drainBuffersTask = new PerformCleanupTask();
 nodeFactory = NodeFactory.newFactory(builder, isAsync);
 data = new ConcurrentHashMap<>(builder.getInitialCapacity());
 readBuffer = evicts() || collectKeys() || collectValues() || expiresAfterAccess()
   ? new BoundedBuffer<>()
   : Buffer.disabled();
 accessPolicy = (evicts() || expiresAfterAccess()) ? this::onAccess : e -> {};
 if (evicts()) {
  setMaximum(builder.getMaximum());
 }
}

相关文章