Google Guava:可以用来做缓存,下面是一个通过线程来查看的具体示例。
package com.haoxin.web.ops.system.test;
import java.util.concurrent.ExecutionException;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
public class GuavaTest {
private static LoadingCache<String,Object> cache;
public static void main(String[] args) throws InterruptedException, ExecutionException {
InitThread t1 = new InitThread();
t1.start();
Thread.sleep(1000);
System.out.println("开始执行!!");
for (int i=0;i<10;i++){
CacheThread cacheThread = new CacheThread();
cacheThread.start();
}
Thread.sleep(Integer.MAX_VALUE);
}
static class InitThread extends Thread{
@Override
public void run() {
cache = CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
new CacheLoader<String, Object>() {
@Override
public Object load(String key) throws Exception {
System.out.println("---loading cache---");
return "hhhh";
}
}
);
}
}
static class CacheThread extends Thread{
@Override
public void run() {
try {
System.out.println(cache.get("ms"));
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
}
执行结果:
通过执行结果可以看出:在cache.get("ms")这个方法中,可以吧ms看为key 把 hhhh 的返回结果看为 value,"---loading cache---"只打印了一遍。这就是guava的用法,具体的还有缓存的超时时间各种用法,请自行百度或Google!