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/
谢谢您的赞助,我会做的更好!