原文地址:Guava库学习:学习Guava Cache(七)RemovalListener(2)_RemovalListeners
html
接着上一篇Guava库学习:学习Guava Cache(七)RemovalListener(1)_RemovalNotification,咱们继续Guava Cache RemovalListener的学习,学习Guava Cache(七)RemovalListener(2)_RemovalListeners。java
RemovalListenersweb
RemovalListeners可以帮助咱们异步的处理,缓存条目移除后的通知,为了让咱们的Listener能够在条目被移除时异步的处理通知,咱们能够像下面这样调用RemovalListeners. asynchronous方法:缓存
private ExecutorService executor; private ListeningExecutorService executorService; @Before public void setUp() { executor = Executors.newCachedThreadPool(); executorService = MoreExecutors.listeningDecorator(executor); } @Test public void testRemovalListener() { RemovalListener<String, TradeAccount> myRemovalListener = new RemovalListener<String, TradeAccount>() { @Override public void onRemoval(RemovalNotification<String, TradeAccount> notification) { //Do something here } }; RemovalListener<String, TradeAccount> removalListener = RemovalListeners.asynchronous(myRemovalListener, executorService); }
上面,咱们经过构造好的RemovalListener和executorService实例,并被它们做为参数传入 RemovalListeners.asynchronous的方法中。这个方法返回了一个RemovalListener实例,将异步的处理移除条目后的通知,这个步骤会发生在咱们将这个RemovalListener注册到CacheBuilder实例后。
异步