ExecutorService 简单使用

小弟我前段时间看了一下jdk的并发包。感觉各种懵逼。每一个能理解明白的。但还是稍有体会一些的。

这里记录一下ExecutorService 并发工具的使用吧。

简单的说呢,这个类,是可以对任务线程进行调度的。非常实用。可以通过Executors的的静态方法进行创建。这里以ExecutorService es = Executors.newFixedThreadPool(5);为例

意思是:创建一个指定容量的线程池,容量为5,并且使这5个线程始终处于活跃状态,当任务数量超过5个时,只能执行5个任务,剩下的任务,需要等池子中的线程将任务执行完毕后再执行,如果有线程因为执行任务失败而终止运行,则会有新的闲置线程取代他执行任务(会不会导致所有线程都执行失败而终止呢?)

public class ThreadPoolDemo {
	
	public static class MyTask implements Runnable{

		@Override
		public void run() {
			
			System.out.println(System.currentTimeMillis() + ":thread ID "
					 + Thread.currentThread().getId());
			
			try{
				Thread.sleep(1000);
			}catch(Exception e){
				e.printStackTrace();
			}
			
		}
		
	}
	
	public static void main(String[] args) {
		MyTask task = new MyTask();
		//线程池中的任务和数据属性时唯一的。有5个容量,一次就能执行5个。10个任务要分两次执行,
		//在ExecutorService没有shutDown时,线程池一直监控是否有任务,如果还有,则继续执行,什么时间执行不一定。
		ExecutorService es = Executors.newFixedThreadPool(5);
		for(int i = 0; i < 11; i++){
			es.submit(task);
		}
		
	}

 

转载于:https://my.oschina.net/u/2543341/blog/968090

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值