博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java线程池管理多线程的应用
阅读量:4182 次
发布时间:2019-05-26

本文共 1624 字,大约阅读时间需要 5 分钟。

最近有一个需求,前端点击一个按钮,后端需要多线程执行任务,执行完返回结果到前端。使用线程池实现,每次调用新建线程池对象,使用完销毁线程池对象,这个用的是spring线程池,java自带的线程池效果差不多,代码如下:

实现代码:

public String testThreadPool() {	 		ThreadPoolTaskExecutor threadPoolTaskExecutor = ThreadPoolUtils.getThreadPool();	 		//开启50个线程 	        for (int i = 1; i <= 50; i++) {   	        	int index = i; 	        	threadPoolTaskExecutor.execute(new Thread(new Runnable() { 					@Override 					public void run() { 						//TODO 处理业务 						System.out.println(index);  					} 				}));   	        }   	         	        while (true) {   	        	//sleep 2秒				try {					Thread.sleep(200);				} catch (InterruptedException e) {					e.printStackTrace();				}				//如果活跃的线程为0,则说明任务处理完毕 	            if (threadPoolTaskExecutor.getActiveCount()<1) {   	                System.out.println("结束了!");   	                //销毁线程池 	                threadPoolTaskExecutor.destroy(); 	                break;   	            }   	        } 			return "任务处理完毕!";	    }
生成线程池的类:

package capital.core.utils;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;/** * 线程池util * @author tanqian * @date 2018年1月30日 */public class ThreadPoolUtils {	/**	 * 返回一个初始化完成的线程池对象	 * @return	 */	public static ThreadPoolTaskExecutor getThreadPool() {		ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();		//最小线程数		threadPoolTaskExecutor.setCorePoolSize(20);		//最大线程数		threadPoolTaskExecutor.setMaxPoolSize(50);		//空闲线程存活时间		threadPoolTaskExecutor.setKeepAliveSeconds(1000);		//队列中最大线程		threadPoolTaskExecutor.setQueueCapacity(50);		//初始化		threadPoolTaskExecutor.initialize();		return threadPoolTaskExecutor;	}}

转载地址:http://ahzoi.baihongyu.com/

你可能感兴趣的文章
android一行代码实现沉浸式布局效果
查看>>
json, recyclerView问题
查看>>
cmake处理多源文件目录的方法
查看>>
Service Intent must be explicit
查看>>
android studio SDK开发
查看>>
studio 统计代码的行数
查看>>
字符数组和16进制互换
查看>>
PHP项目中出现致命错误: Class 'Redis' not found
查看>>
There is no tracking information for the current branch.
查看>>
fatal: refusing to merge unrelated histories
查看>>
Git命令还原未提交的变更
查看>>
Linux系统中环境变量的配置
查看>>
Linux系统中配置脚本程序开机启动
查看>>
让Linux系统上的nginx支持php程序
查看>>
源码编译安装LNMP环境之Nginx篇
查看>>
源码编译安装LNMP环境之PHP篇
查看>>
Linux中rpm工具使用教程
查看>>
Linux中yum工具使用教程
查看>>
C++字符串函数
查看>>
mknod详解
查看>>