【多线程】线程池的使用

线程池的作用:

限制系统中执行线程的数量,减少内存的消耗,减轻服务器负荷。



newFixedThreadPool

ExecutorService pool=Executors.newFixedThreadPool(2);
	Thread t1=new Thread(new ThreadDemo1("线程A"));
	Thread t2=new Thread(new ThreadDemo1("线程B"));
	Thread t3=new Thread(new ThreadDemo1("线程C"));
	Thread t4=new Thread(new ThreadDemo1("线程D"));
	//放入线程池
	 pool.execute(t1);
	 pool.execute(t2);
	 pool.execute(t3);
	 pool.execute(t4);
	//关闭线程池
	 pool.shutdown();



newCachedThreadPool

 ExecutorService pool=Executors.newCachedThreadPool();
	   
	   for(int i=0;i<10;i++){
		   final int index=i;
		   try {
			Thread.sleep(1000);
			
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	   
	   
	   pool.execute(new Runnable(){

		@Override
		public void run() {
            System.out.println(index);			
		}});
	}

newScheduledThreadPool

ScheduledExecutorService pool=Executors.newScheduledThreadPool(5);
		pool.schedule(new Runnable() {
			@Override
			public void run() {
          System.out.println("延迟3秒");				
			}
		}, 3, TimeUnit.SECONDS);
		
		
		pool.scheduleAtFixedRate(new Runnable() {
			@Override
			public void run() {
         System.out.println("延迟1秒,每个执行3秒");				
			}
		}, 1, 3, TimeUnit.SECONDS);

newSingleThreadExecutor

ExecutorService singleThreadExecutor=Executors.newSingleThreadExecutor();
		for(int i=0;i<5;i++){
			final int index=i;
			singleThreadExecutor.execute(new Runnable(){

				@Override
				public void run() {
					try {
						Thread.sleep(2000);
						System.out.println(Thread.currentThread().getName()+"  : "+index);
					} catch (InterruptedException e) {
						e.printStackTrace();
						
					}
				}});
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java多线程线程池是一种重用线程的机制,它可以管理和调度多个线程来执行任务。使用线程池可以提高程序的性能和效率,同时也可以避免线程的频繁创建和销毁。 在Java中,可以使用线程池类ExecutorService和Executors来创建和管理线程池。具体步骤如下: 1. 创建一个线程池对象:可以使用Executors提供的静态方法创建不同类型的线程池,比如newFixedThreadPool固定大小线程池、newCachedThreadPool缓存线程池等。 2. 向线程池提交任务:使用submit方法向线程池提交需要执行的任务,也可以使用execute方法提交任务。任务可以是实现了Runnable接口或Callable接口的类,也可以是Lambda表达式。 3. 线程池执行任务:线程池会根据线程池的规模和任务的数量来调度和执行任务,多个任务会并发执行。 4. 关闭线程池:当不再需要线程池时,可以调用线程池的shutdown方法来关闭线程池,确保所有的任务都被执行完毕。 使用线程池的好处有: 1. 提高性能:线程池可以重用线程,避免线程频繁创建和销毁的开销,提高程序的性能。 2. 提供线程管理和调度:线程池可以管理和调度线程,根据线程池的规模和任务的数量来调度和执行任务。 3. 控制资源的使用线程池可以限制并发线程的数量,避免过度占用系统资源。 在Java开发中,使用线程池是一种推荐的多线程编程方式,也是阿里巴巴在其《Java开发手册》中强制规定的做法。 Java线程的创建是依赖于系统内核的,通过JVM调用系统库创建内核线程,内核线程与Java Thread是1:1的映射关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java多线程(六):线程池详解](https://blog.csdn.net/m0_59140023/article/details/124436385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [java多线程线程池](https://blog.csdn.net/qq_29996285/article/details/118955325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值