`
knight_black_bob
  • 浏览: 822935 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ExecutorService

阅读更多

 

 

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ExecutorServiceTest {

	 public static void main(String[] args) {
		 ExecutorService exe =null;
		 exe = Executors.newFixedThreadPool(5);
		 //创建固定数目线程的线程池。
		// exe = Executors.newSingleThreadExecutor();
		 //创建一个单线程化的Executor
		 //exe = Executors.newCachedThreadPool();
		 //创建一个可缓存的线程池,调用execute将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线 程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。
		 //exe = Executors.newScheduledThreadPool(1);
		 //创建一个支持定时及周期性的任务执行的线程池,多数情况下可用来替代Timer类
		 System.out.println("-=====================" + System.currentTimeMillis());
		 exe.submit(()->{
			 try {
				Thread.sleep(1000);
			} catch (Exception e) { 
				e.printStackTrace();
			}
			 System.out.println("-=====================" + System.currentTimeMillis());
		 });
		 System.out.println("-=====================" + System.currentTimeMillis());
		 exe.shutdown();
		 
		 
		 ScheduledExecutorService sexe = Executors.newScheduledThreadPool(1);
		 sexe.scheduleAtFixedRate(()->{ 
			 System.out.println("-==sexe===================" + System.currentTimeMillis());
		 }, 0, 2, TimeUnit.SECONDS);
		 
		 
		 
		 BlockingQueue<Runnable> bqueue = new ArrayBlockingQueue<Runnable>(20); 
	     //创建线程池,池中保存的线程数为3,允许的最大线程数为5
	     ThreadPoolExecutor pool = new ThreadPoolExecutor(3,5,50,TimeUnit.MILLISECONDS,bqueue); 
	     
	     
	}

}

 

 

 

 

 

 

 

 

 

 

 

捐助开发者 

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。

 

个人主页http://knight-black-bob.iteye.com/



 
 
 谢谢您的赞助,我会做的更好!

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics