JDK线程池和弹簧线程池的使用实例介绍

介绍

本篇内容主要讲解“JDK线程池和弹簧线程池的使用实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JDK线程池和弹簧线程池的使用实例介绍”吧!

JDK线程池和弹簧线程池实例,异步调用,可以直接使用

<强> (1)JDK线程池的使用,此处采用单例的方式提供,见示例:

公共类ThreadPoolUtil{私有静态int corePoolSize=5;私有静态int maximumPoolSize=10;私有静态长keepAliveTime=60 l;私有静态TimeUnit unit=TimeUnit.SECONDS;私有静态int能力=1024;私有静态ThreadFactory namedThreadFactory=new ThreadFactoryBuilder () .setNameFormat (“jdk-thread-pool - % d") .build();私有静态最终ExecutorService ExecutorService=new ThreadPoolExecutor (corePoolSize、maximumPoolSize keepAliveTime,单位,新LinkedBlockingQueue<祝辞(能力),namedThreadFactory,新ThreadPoolExecutor.AbortPolicy());私人ThreadPoolUtil(){}公共静态ExecutorService getExecutorService(){返回ExecutorService;}}

在其它地方可以直接这样使用:

ThreadPoolUtil.getExecutorService () . execute (()→{System.out.println (“test1"); System.out.println (“test2");})

<强>(2)弹簧线程池的使用,此处通过配置类的方式配置线程池的相关属性,见示例:

@Configuration@EnableAsyncpublic类DocataThreadBeanConfig{私人int corePoolSize=5;私人int maxPoolSize=10;私人int queueCapacity=1024;私人字符串namePrefix=癮sync-service-task产生绯闻;;//上述属性可以通过@ value来读取配置值@ bean (name=癮syncServiceTaskExecutor")公共TaskExecutor asyncServiceExecutor () {ThreadPoolTaskExecutor执行人=new ThreadPoolTaskExecutor();//设置核心线程数executor.setCorePoolSize (corePoolSize);//设置最大线程数executor.setMaxPoolSize (maxPoolSize);//设置队列容量executor.setQueueCapacity (queueCapacity);//设置线程活跃时间(秒)executor.setKeepAliveSeconds(60);//设置默认线程名称executor.setThreadNamePrefix (namePrefix);//设置拒绝策略执行人。setRejectedExecutionHandler(新ThreadPoolExecutor.CallerRunsPolicy());//等待所有任务结束后再关闭线程池executor.setWaitForTasksToCompleteOnShutdown(真正);executor.initialize();;返回执行人;}}

在其它文件中需要这样使用:

@ resource (name=癮syncServiceTaskExecutor")私人ThreadPoolTaskExecutor asyncServiceTaskExecutor;

不要直接使用@ autowired,否则会提示失败的

@Autowiredprivate ThreadPoolTaskExecutor asyncServiceTaskExecutor;

到此,相信大家对“JDK线程池和弹簧线程池的使用实例介绍”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

JDK线程池和弹簧线程池的使用实例介绍