标签:.sh getname current print live ice ack exe rac
例子:
ExecutorService es = Executors.newCachedThreadPool(); try { for (int i = 0; i < 20; i++) { Runnable syncRunnable = new Runnable() { @Override public void run() { log.info(Thread.currentThread().getName()); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } }; es.execute(syncRunnable); } } finally { es.shutdown(); }
运行结果:
10:21:04.610 pool-1-thread-13 10:21:04.612 pool-1-thread-3 10:21:04.612 pool-1-thread-7 10:21:04.612 pool-1-thread-2 10:21:04.610 pool-1-thread-14 10:21:04.612 pool-1-thread-6 10:21:04.611 pool-1-thread-8 10:21:04.611 pool-1-thread-11 10:21:04.611 pool-1-thread-4 10:21:04.610 pool-1-thread-1 10:21:04.611 pool-1-thread-20 10:21:04.611 pool-1-thread-12 10:21:04.610 pool-1-thread-16 10:21:04.611 pool-1-thread-5 10:21:04.611 pool-1-thread-9 10:21:04.610 pool-1-thread-17 10:21:04.610 pool-1-thread-18 10:21:04.610 pool-1-thread-10 10:21:04.611 pool-1-thread-15 10:21:04.611 pool-1-thread-19
调用的调用的ThreadPoolExecutor:
public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); }
corePoolSize=0,maximumPoolSize=Integer.MAX_VALUE
keepAliveTime=60秒
allowCoreThreadTimeout=false(默认)
因此,
线程池(3)Executors.newCachedThreadPool
标签:.sh getname current print live ice ack exe rac
原文地址:https://www.cnblogs.com/yaoyuan2/p/9606504.html