ThreadPoolService.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.zskk.service;
  2. import java.util.concurrent.Callable;
  3. import java.util.concurrent.ExecutorService;
  4. import java.util.concurrent.Executors;
  5. import java.util.concurrent.Future;
  6. import java.util.concurrent.ScheduledExecutorService;
  7. import java.util.concurrent.TimeUnit;
  8. /**
  9. * 线程池服务
  10. * @author lt
  11. *
  12. */
  13. public class ThreadPoolService {
  14. private static ExecutorService POOLS = null;
  15. private static ScheduledExecutorService TIMER_POOLS = null;
  16. public ThreadPoolService(){
  17. POOLS = Executors.newCachedThreadPool();
  18. TIMER_POOLS = Executors.newScheduledThreadPool(1);
  19. }
  20. /**
  21. * 执行
  22. * @param run
  23. */
  24. public void execute(Runnable run){
  25. POOLS.execute(()->{
  26. try{
  27. run.run();
  28. }catch(Exception e){
  29. // LogUtil.sysError(e.getMessage(), e);
  30. }
  31. });
  32. }
  33. /**
  34. * 提交任务
  35. * @param callable
  36. * @return
  37. */
  38. public <T> Future<T> submit(Callable<T> callable){
  39. return POOLS.submit(callable);
  40. }
  41. /**
  42. * 循环任务
  43. * @param call
  44. * @param delay
  45. */
  46. public void schedule(Runnable call, long delay){
  47. TIMER_POOLS.scheduleAtFixedRate(()->{
  48. try{
  49. call.run();
  50. }catch(Exception e){
  51. // LogUtil.sysError(e.getMessage(), e);
  52. }
  53. }, 0, delay, TimeUnit.MINUTES);
  54. }
  55. }