首页 > 学院 > 开发设计 > 正文

线程池分析

2019-11-08 02:08:26
字体:
来源:转载
供稿:网友

线程池,在多线程开发考虑并发性能优化时都会考虑使用线程池。

1、示例

a)创建线程任务MyTask.java
public class MyTask implements Runnable {	PRivate int taskNum;	public MyTask(int taskNum) {		this.taskNum = taskNum;	}	@Override	public void run() {		System.out.println("正在执行任务task:" + taskNum);		try {			Thread.currentThread().sleep(10);		} catch (InterruptedException e) {			e.printStackTrace();		}		System.out.println("task:" + taskNum + " 执行完毕!");	}}b)创建线程执行类Test.java
import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;import java.util.concurrent.ArrayBlockingQueue;public class Test {	public static void main(String[] args) {		ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS,				new ArrayBlockingQueue<Runnable>(5));		for (int i = 0; i < 15; i++) {			MyTask mytask = new MyTask(i);			executor.execute(mytask);			System.out.println("线程池中的线程数目:" + "" + executor.getPoolSize() + ",队列中等待执行的任务数目:"					+ executor.getQueue().size() + ",已执行完成的任务数目:" + executor.getCompletedTaskCount());		}		/*		 * try { Thread.sleep(5000); } catch (InterruptedException e) {		 * e.printStackTrace(); }		 * 		 * System.out.print("--------:"+executor.getCompletedTaskCount());		 */		executor.shutdown();	}}

未完待续......


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表