资讯详情

线程池工具类的使用及开启编程式事务

一.线程池工具

/**  * 线程池工具  * @author ljc  * @version 1.0  * @date 2019/6/10/0010 - 09:47  */ public class ThreadPoolUtils {      /**      * 即使没有任务,核心线程数也会一直存活,线程池也将维护线程的最小数量      */     private static final int SIZE_CORE_POOL = 5;     /**      * 最大数量的线程池维护线程      */     private static final int SIZE_MAX_POOL = 10;     /**      * 线程池维护线程允许的空闲时间      */     private static final long ALIVE_TIME = 2000;     /**      * 线程缓冲队列,当core当线程被线程任务占据时,如果此时有新的线程任务进来,那么新的线程任务将被排除在外BlockingQueue<Runnable>队列中      */     private static BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(100);     private static ThreadPoolExecutor pool = new ThreadPoolExecutor(SIZE_CORE_POOL, SIZE_MAX_POOL, ALIVE_TIME, TimeUnit.MILLISECONDS, bqueue, new ThreadPoolExecutor.CallerRunsPolicy());      private ThreadPoolUtils(){}     static {         pool.prestartAllCoreThreads();     }      public static ThreadPoolExecutor getPool() {         return pool;     } } 

二.编程事务的使用和开启

ThreadPoolUtils.getPool().submit(new Runnable() {                     @Override                     public void run() {                         ///开始编程事务                         transactionTemplate.execute(new TransactionCallback<Boolean>() {                             @Override                             public Boolean doInTransaction(TransactionStatus transactionStatus) {                                 try {                                                                      ---代码逻辑----                                                                          return true;                                 }                                 catch (Exception e) {                                     //事务回滚;                                     transactionStatus.setRollbackOnly();                                     e.printStackTrace();                                     return false;                                 }                             }                         });                     }                 });             } 

注: @Transactional不支持多线程,所以开始编程事务 如果代码逻辑不涉及事务控制,可以删除编程事务

标签: 传感器ljc20a4

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台