2018-06-18 java 线程池笔记 线程池笔记 线程池1234567891011121314151617181920212223242526272829303132package com.cdinit;import java.util.Random;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class ThreadPoolDemo { public static void main(String[] arg) throws Exception{// ExecutorService executorService = Executors.newFixedThreadPool(5);// ExecutorService executorService = Executors.newSingleThreadExecutor(); ExecutorService executorService = Executors.newCachedThreadPool(); Future<Integer> result = null; try{ for(int i=1;i<=15;i++){ result = executorService.submit(()->{// Thread.sleep(400); System.out.print(Thread.currentThread().getName()); return new Random().nextInt(10); }); System.out.println("-->result--->" + result.get()); } }catch (Exception e){ e.printStackTrace(); }finally { executorService.shutdown(); } }} ThreadPoolSchedu12345678910111213141516171819202122232425262728package com.cdinit;import java.util.Random;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.ScheduledFuture;import java.util.concurrent.TimeUnit;public class ThreadPoolScheduDemo { public static void main(String[] arg) throws Exception{ ScheduledExecutorService service = Executors.newScheduledThreadPool(5); ScheduledFuture<Integer> result = null; try{ for(int i=1;i<=15;i++){ result = service.schedule(()->{ System.out.println(Thread.currentThread().getName()); return new Random().nextInt(10); },2,TimeUnit.SECONDS); System.out.println(result.get()); } }catch (Exception e){ e.printStackTrace(); }finally { service.shutdown(); } }} 参考Executors创建的4种线程池的使用 Newer dubbo简单demo搭建 Older Java并发:CountDownLatch、CyclicBarrier和 Semaphore