线程池类Executors的运用
发布日期:2021-09-16 12:20:04 浏览次数:6 分类:技术文章

本文共 1109 字,大约阅读时间需要 3 分钟。

public class Test12 {public static void main(String[] args) {//	ExecutorService threadPool=Executors.newFixedThreadPool(3);//创建固定的线程个数放入线程池中		/*创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。	    如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。	    因此,长时间保持空闲的线程池不会使用任何资源。	 *///	ExecutorService threadPool=Executors.newCachedThreadPool();		/*创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。(注意,如果因为在关闭前的执行	  期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行后续的任务)。可保证顺序地执行	  各个任务,并且在任意给定的时间不会有多个线程是活动的。*/	ExecutorService threadPool=Executors.newSingleThreadExecutor();	for(int i=0;i<10;i++){		final int task=i;		threadPool.execute(new Runnable(){			public void run(){				for(int j=0;j<5;j++){					try {						Thread.sleep(100);					} catch (InterruptedException e) {						e.printStackTrace();					}					System.out.println(Thread.currentThread().getName()+" has loop "+j+" is pool num "+task);				}			}		});	}	/*启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用	也就是等上面的都执行完成之后会把线程池中的线程销毁回收,否则的话线程池中的线程还存在,	程序不会运行终止*///	threadPool.shutdown();	/*试图停止所有正在执行的活动任务,暂停处理正在等待的任务,并返回等待执行的任务列表。 	 不会等到上面运行完才停止线程,会立刻停止*///	threadPool.shutdownNow();}}

转载地址:https://blog.csdn.net/wxwzy738/article/details/7487052 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Lock的简单运用
下一篇:对map中的value进行排序

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月10日 05时13分58秒