`

线程并发工具--线程执行器

 
阅读更多

有的时候,你可能会产生大量的线程,这些线程的执行可能是有规定的,比如同时只运行最多有3个线程在执行,这种情况就可以使用线程执行器。线程执行器的分为一下几种:

1)固定大小的

ExecutorService executorService = Executors.newFixedThreadPool(3);
这个执行器表示不论多少个线程被装进这个执行器里面,同时在运行的最多只有3个。

2)单线程执行

ExecutorService executorService = Executors.newSingleThreadExecutor();
这个和Executors.newFixedThreadPool(1)是一个道理。

3)缓存式执行器

ExecutorService executorService = Executors.newCachedThreadPool();
你来多少线程我就给你起多少个线程为你服务。

另外,关闭线程池有两种方法,shutdown()表示等所有任务都执行完毕之后再关闭;shutdownNow()表示立即关闭,不论是否当前还有正在运行的任务。


往执行器中提交任务的两种任务:

1:普通提交,不管执行结果:

servie.execute(new Runnable(){
	@Override
	public void run() {
		System.out.println("task running in Executors");
	}
});

2:Future&Callable等待执行结果:

		Future future = servie.submit(new Callable<String>() {
			@Override
			public String call() throws Exception {
				return "Hello";
			}
		});
		
		try {
			System.out.println(future.get());
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}






分享到:
评论

相关推荐

    B站河北王校长-并发编程-深度核心面试知识汇总.pdf

    另外任务与代码没有分离,当多个线程执行一样的任务时需要多份任务代码,Runnable则没有这个限制。 IllegalMonitorStateException * 如果调用wait()方法的线程没有事先获取该对象的监视器锁,则调用wait()方法时...

    Java并发理论,如何理解线程安全.docx

    在多线程条件下,多个线程肯定会相互协作完成一件事,一般来说就会涉及到多个线程将相互通信告知彼此状态以及当前执行结果等,另外为了性能优化,还会涉及到编辑器指令重排序和处理器指令重排序 二、并发编程中的...

    Android异步并发类库Android-lite-go.zip

    LiteGo 特性可定义核心并发线程数,即同一时间并发的请求数量。可定义等待排队线程数,即超出核心并发数后可排队请求数量。可定义等待队列进入执行状态的策略:先来先执行,后来先执行。可定义等待队列满载后处理新...

    phpunit-parallel:PHPUnit并发测试执行器

    另一个PHPUnit并发测试执行器 我不再维护该项目,它仅在这里作为存档。 另一种方法是,检查出 它是如何工作的? phpunit-parallel使用基于react-php的even循环与许多辅助进程进行通信。 它通过unix管道(fd = 3)...

    多线程高并发采集器

    并且提交到线程池执行 4)返回(2) 接收数据线程 LogReceiver 1)接收用户的Request 2)获取用户发送过来的 LogRec集合数据 3)推送数据到阻塞队列中 4)如果推送成功就发送Response(200) 5) 如果推送...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段15讲、单线程执行设计模式,有一个门,始终只能一个人通过-下.mp4 │ 高并发编程第二阶段16讲、多线程读写锁分离设计模式讲解-上.mp4 │ 高并发编程第二阶段17讲、多线程读写锁分离设计模式...

    Java 7并发编程实战手册

    全书分为9章,涵盖了线程管理、线程同步、线程执行器、Fork/Join框架、并发集合、定制并发类、测试并发应用等内容。全书通过60多个简单而非常有效的实例,帮助读者快速掌握Java 7多线程应用程序的开发技术。学习完...

    Java并发编程实战

    6.1 在线程中执行任务 6.1.1 串行地执行任务 6.1.2 显式地为任务创建线程 6.1.3 无限制创建线程的不足 6.2 Executor框架 6.2.1 示例:基于Executor的Web服务器 6.2.2 执行策略 6.2.3 线程池 6.2.4 Executor...

    线程+监听技术 简单的例子 和详细讲解

    监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计 ...显然,按传统方法设计的程序,无论是单道执行的程序,还是由多个进程并发执行的多道程序,就每个程序本身而言,都是由单线程组成的。

    Intel.Thread.Profiler.英特尔_.线程档案器4

    ●测量应用有效利用的内核数量,确定实际的并行处理性能 &lt;br&gt;英特尔® 线程档案器 3.1 Windows 版同时显示并发视图和时间轴视图,这有助于查看哪部分代码适合并行处理以及应用性能问题源于何处。在图 1 中,...

    Intel.Thread.Profiler.英特尔®.线程档案器

    ●测量应用有效利用的内核数量,确定实际的并行处理性能 &lt;br&gt;英特尔® 线程档案器 3.1 Windows 版同时显示并发视图和时间轴视图,这有助于查看哪部分代码适合并行处理以及应用性能问题源于何处。在图 1 中,...

    Java程序设计案例教程-第8章-多线程编程.pptx

    例如,文本编辑器可以在打印的同时格式化文本,只要这两个动作是通过两个独立的线程执行即可。 第7页 Java程序设计案例教程-第8章-多线程编程全文共36页,当前为第7页。 进程和线程的区别 进程和线程的区别可以总结...

    Java高级程序设计-多线程(二).pptx

    3.1.1 模拟银行取款 由于多线程并发问题,一个线程执行余额操作可能未完毕,另外一个线程读取或者也在操作余额,必然会引起数据的不准确性。 这个时候需要在线程中加入对数据的保护机制,从而达到防止并发引起的...

    Java 并发编程实战

    6.1 在线程中执行任务 6.1.1 串行地执行任务 6.1.2 显式地为任务创建线程 6.1.3 无限制创建线程的不足 6.2 Executor框架 6.2.1 示例:基于Executor的Web服务器 6.2.2 执行策略 6.2.3 线程池 6.2.4 Executor...

    第20章 Part5 并发工具执行器与线程池.pdf

    线程池是在写线程的时候很重要的一个东西,强烈的建议,可以学习下

    Java第19讲:多线程(1).txt

    多线程并发执行可以提高程序的效率,可以同时完成多项工作 举例:电脑管家同时进行清理垃圾、查杀修复、优化加速,这就是多线程。 如果是单线程的话,在运行清理垃圾时,其它两个都得在等待,不能运行。 ...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段15讲、单线程执行设计模式,有一个门,始终只能一个人通过-下.mp4 │ 高并发编程第二阶段16讲、多线程读写锁分离设计模式讲解-上.mp4 │ 高并发编程第二阶段17讲、多线程读写锁分离设计模式...

    Java面试整理,涵盖基础、JVM、线程并发、框架、MySQL、微服务、Redis、中间件、数据结构与算法等。陆续完善中.zip

    多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过...

    spring boot中多线程开发的注意事项总结

    spring boot 通过任务执行器 taskexecutor 来实现多线程和并发编程。下面这篇文章主要给大家介绍了关于spring boot中多线程开发的注意事项,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics