【多线程】线程池的使用

原创 2018年04月16日 15:38:48

线程池的作用:

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



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();
						
					}
				}});
		}


版权声明:本文为博主原创文章,如需转载请标明来源。 https://blog.csdn.net/sinat_35821285/article/details/79961200

多线程必须用到的线程池(什么时候用多线程)

案例需求:要开发的项目是一个IT问答平台,其中用户发布问题后,需要给平台上所有选了该问题类别的邮箱中各发一份邮件。 分析:这个时候就必须用到多线程了,因为用户发布问题和给其他用户发邮件可以说是两...
  • qq_32079585
  • qq_32079585
  • 2017-09-01 16:52:47
  • 621

Unity多线程、线程池的使用

C#多线程的使用Unity支持多线程,Unity支持多线程,Unity支持多线程,重要三遍。 当大家使用到Unity读取外界数据或者操作网格的时候,多线程会非常的好用,因为操作可能比较昂贵,多开辟一...
  • ksgt00629518
  • ksgt00629518
  • 2016-12-27 13:48:50
  • 1565

用线程池和不用线程池的区别是什么?

public class ThreadCondition implements Runnable { private static int count=0; @Test public void ...
  • dingxingmei
  • dingxingmei
  • 2016-10-28 15:25:51
  • 3250

ScanComputer

  • 2011年11月19日 10:35
  • 83KB
  • 下载

java网络编程____httpclient多线程请求和线程池

import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; impo...
  • qq827245563
  • qq827245563
  • 2017-03-10 13:40:07
  • 1867

java编写Producer(线程池,kafka)

1.将kafka带的jar包导入项目内 2.public class TestThreadPool{ public static void main(String args[]){ /...
  • qq_27020369
  • qq_27020369
  • 2017-07-07 14:53:52
  • 895

python 多线程与线程池

引言 对于 Python 来说,并不缺少并发选项,其标准库中包括了对线程、进程和异步 I/O 的支持。在许多情况下,通过创建诸如异步、线程和子进程之类的高层模块,Python 简化了各种并发方法...
  • guogaoan
  • guogaoan
  • 2014-07-08 19:35:01
  • 2171

linux 下epoll与线程池结合使用的简单实例

本文针对初学socket epoll和多线程的小伙伴们对库函数的简单概述:注释:        1.socket()函数------作用 :用于根据指定的地址族、数据类型和协议来分配一个套接口的描述字...
  • xilango
  • xilango
  • 2016-10-15 18:35:32
  • 2346

在web项目中使用线程池发送邮件实例

在普通的web应用中,发送邮件应该只能算小任务,而使用jms来发送邮件有点杀鸡用牛刀的味道,那么如果能建立一个线程池来管理这些小线程并重复使用他们,应该来说是一个简单有效的方案,我们可以使用concu...
  • liweifengwf
  • liweifengwf
  • 2013-05-22 13:25:24
  • 2784

Tomcat线程池实现简介(一)

  目前市场上常用的开源Java Web容器有Tomcat、Resin和Jetty。其中Resin从V3.0后需要购买才能用于商业目的,而其他两种则是纯开源的。可以分别从他们的网站上下载最新的二...
  • hulefei29
  • hulefei29
  • 2009-01-21 17:38:00
  • 12699
收藏助手
不良信息举报
您举报文章:【多线程】线程池的使用
举报原因:
原因补充:

(最多只允许输入30个字)