java中线程池的理解和使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中线程池的理解和使用相关的知识,希望对你有一定的参考价值。
看过很多关于线程的文章,但还是觉得需要说些什么。
我只想说使用线程池的时候,就不要自己写队列和循环等东西了。
代码如下:
1 public class SqlLogRecorder { 2 private static Logger logger = LoggerFactory.getLogger(SqlLogRecorder.class); 3 4 public SqlLogRecorder(MSConfigManager configManager){ 5 // 可以根据需要创建不同类型的连接池 6 workerPool = Executors.newFixedThreadPool(configManager.getSqlLogThreadCount()); 7 } 8 9 /** 10 * 将消息插入数据库 11 * @param messageObject 12 */ 13 public void insertMessageToDB(final MessageObject messageObject) { 14 workerPool.execute(new Runnable() { 15 @Override 16 public void run() { 17 if(logger.isDebugEnabled()) { 18 logger.debug(" insert message : "); 19 logger.debug(messageObject.toJsonString()); 20 } 21 // XXXX 需要做的工作 22 } 23 24 }); 25 } 26 27 28 public void close() { 29 workerPool.shutdown(); 30 } 31 }
当不需要是一定记得关闭
以上是关于java中线程池的理解和使用的主要内容,如果未能解决你的问题,请参考以下文章