线程池的应用(缓存的处理思想)
来源:互联网 发布:sybase数据库 编辑:程序博客网 时间:2024/06/15 17:48
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
public class ThreadPoolUtil {
private static final ExecutorService executors;
private static final ScheduledExecutorService sheduledThreadPool;
static{
executors = Executors.newFixedThreadPool(6);
sheduledThreadPool = Executors.newScheduledThreadPool(3);
}
public static ExecutorService getExecutorService(){
return executors;
}
public static ScheduledExecutorService getScheduledExecutorService(){
return sheduledThreadPool;
}
}
public class SysconfigUtil {
private static Logger log = LoggerFactory.getLogger(SysconfigUtil.class);
private static List<SysConfig> configList = new ArrayList<SysConfig>();
static{
ScheduledExecutorService executorService = ThreadPoolUtil.getScheduledExecutorService();
SysconfigTask task = new SysconfigTask();
SetDataTask sdt = new SetDataTask();//
GetSearch gs = new GetSearch();//
ClearIndexCacheTask indexCacheTask = new ClearIndexCacheTask();
executorService.scheduleAtFixedRate(task, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(gs, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(sdt, 0, 3L, TimeUnit.MINUTES);
executorService.scheduleAtFixedRate(indexCacheTask, 0, 5L, TimeUnit.MINUTES);
}
public static String getFirstConfigValue(String key){
String value = "";
if(StringUtils.isNotEmpty(key)){
for (SysConfig sysConfig : configList) {
if(key.equalsIgnoreCase(sysConfig.getName())){
value = sysConfig.getVal();
break;
}
}
}
return value;
}
public static List<String> getConfigValues(String key){
List<String> valueList = new ArrayList<String>();
if(StringUtils.isNotEmpty(key)){
for(SysConfig sysConfig : configList){
if(key.equalsIgnoreCase(sysConfig.getName())){
valueList.add(sysConfig.getVal());
}
}
}
return valueList;
}
public static List<SysConfig> getConfigList(){
return configList;
}
private static class SysconfigTask implements Runnable{
@Override
public void run() {
SysConfigService configService = (SysConfigService) AppUtil.getBean(SysConfigService.class);
List<SysConfig> newList = configService.getAll();
SysconfigUtil.getConfigList().clear();
SysconfigUtil.getConfigList().addAll(newList);
if(log.isDebugEnabled()){
log.debug("current time is:" + System.currentTimeMillis() + ";sysconfig list is:" + SysconfigUtil.getConfigList().toString());
}
}
}
/**]
*
*/
private static class SetDataTask implements Runnable{
@Override
public void run() {
EipDictService eds = (EipDictService) AppUtil.getBean(EipDictService.class);
EipDictService.listSettings = eds.getTask();
if(log.isDebugEnabled()){
log.debug("EipDictService.listSettings" + EipDictService.listSettings.size());
}
}
}
private static class GetSearch implements Runnable{
@Override
public void run() {
EipDictService eds = (EipDictService) AppUtil.getBean(EipDictService.class);
EipDictService.getEipSearch = eds.getSearch();
if(log.isDebugEnabled()){
log.debug("EipDictService.getEipSearch" + EipDictService.getEipSearch.size());
}
}
}
/**
*/
private static class ClearIndexCacheTask implements Runnable{
@Override
public void run() {
IndexCacheUtil.clearCache();
}
}
}
- 线程池的应用(缓存的处理思想)
- 一种利用线程池进行for循环处理的思想
- 线程池的基本思想
- 缓存的思想
- 对于缓存思想的理解
- 线程池的主要思想及其修正
- 分治思想的应用
- 分治思想的应用
- 求和思想的应用
- TCMalloc:线程缓存的Malloc [Webkit有其应用]
- TCMalloc:线程缓存的Malloc [Webkit有其应用]
- 线程池的应用
- 线程缓存的探索
- 【我的应用系列】(一)设计线程池处理并发
- 浅析MySQL内存的使用说明(全局缓存+线程缓存)
- 一个很棒的 线程池+缓存 示例
- Hibernate的缓存处理
- ajax的缓存处理
- 软考--软件设计师历年真题知识点选择题汇总
- linux 目录结构
- Lvs下使用Docker扩容实验
- WebApi系列~QQ互联的引入(QConnectSDK)
- 对待二手车过户要理性
- 线程池的应用(缓存的处理思想)
- 3、IOS开发之瀑布流实现
- WebApi系列~通过HttpClient来调用Web Api接口
- Job for nginx.service failed because the control process exited with error code. See "systemctl stat
- Sublime Text2 License Key真实可用
- jquery弹出层完美居中
- 工作半年总结 -web前端
- Fresco正传(6):如何将PhotoView与Fresco的加载机制相结合,解决超大图显示
- MongoDB与内存