锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2022-11-26 05:00:00 传感器ljc20a4

一.线程池工具

/**  * 线程池工具  * @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队列中      */     private static BlockingQueue bqueue = new ArrayBlockingQueue(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() {                             @Override                             public Boolean doInTransaction(TransactionStatus transactionStatus) {                                 try {                                                                      ---代码逻辑----                                                                          return true;                                 }                                 catch (Exception e) {                                     //事务回滚;                                     transactionStatus.setRollbackOnly();                                     e.printStackTrace();                                     return false;                                 }                             }                         });                     }                 });             } 

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

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

相关文章