多线程——newFixedThreadPool线程池
newFixedThreadPool线程池:
/**
* 线程池,实现Runnable接口
* @author Administrator
*
*/
public class ThreadPoolRunnable implements Runnable{
public void run(){
System.out.println(Thread.currentThread().getName()+"线程");
}
}
/**
* 实现Callable线程池
* @author Administrator
*
*/
public class ThreadPoolCallable implements Callable<String>{
@Override
public String call() throws Exception {
System.out.println(Thread.currentThread().getName()+"开始执行Callable接口.......");
return "线程执行完毕!";
}
}
//线程池测试类
public class TestThreadPoolRunnable {
public static void main(String[] args) throws InterruptedException, ExecutionException {
threadRunnable(5, 10);
threadCallable(3, 10);
} /**
* 实现Runnable接口线程池
*
* @param a
* 创建线程数量
* @param b
* 线程池总数
* @throws InterruptedException
* @throws ExecutionException
*/
public static void threadRunnable(int a, int b) throws InterruptedException, ExecutionException {
// 创建线程池
ExecutorService executorService = Executors.newFixedThreadPool(b);
for (int i = 0; i < a; i++) {
// 从线程池中调用线程
executorService.submit(new ThreadPoolRunnable());
}
} /**
* 实现Callable线程池
*
* @param a
* 创建线程数
* @param b
* 线程池总数
* @throws InterruptedException
* @throws ExecutionException
*/
public static void threadCallable(int a, int b) throws InterruptedException, ExecutionException {
ExecutorService executorService = Executors.newFixedThreadPool(b);
for (int i = 0; i < a; i++) {
Future<String> s = executorService.submit(new ThreadPoolCallable());
System.out.println(s.get());
}
}
}
结果:
pool-1-thread-1线程
pool-1-thread-3线程
pool-1-thread-2线程
pool-1-thread-5线程
pool-1-thread-4线程
pool-2-thread-1开始执行Callable接口.......
线程执行完毕!
pool-2-thread-2开始执行Callable接口.......
线程执行完毕!
pool-2-thread-3开始执行Callable接口.......
线程执行完毕!
多线程——newFixedThreadPool线程池的更多相关文章
- ExecutorService 建立一个多线程的线程池的步骤
ExecutorService 建立一个多线程的线程池的步骤: 线程池的作用: 线程池功能是限制在系统中运行的线程数. 依据系统的环境情况,能够自己主动或手动设置线程数量.达到执行的最佳效果:少了浪费 ...
- Java多线程与线程池技术
一.序言 Java多线程编程线程池被广泛使用,甚至成为了标配. 线程池本质是池化技术的应用,和连接池类似,创建连接与关闭连接属于耗时操作,创建线程与销毁线程也属于重操作,为了提高效率,先提前创建好一批 ...
- Java 多线程:线程池
Java 多线程:线程池 作者:Grey 原文地址: 博客园:Java 多线程:线程池 CSDN:Java 多线程:线程池 工作原理 线程池内部是通过队列结合线程实现的,当我们利用线程池执行任务时: ...
- C#多线程之线程池篇3
在上一篇C#多线程之线程池篇2中,我们主要学习了线程池和并行度以及如何实现取消选项的相关知识.在这一篇中,我们主要学习如何使用等待句柄和超时.使用计时器和使用BackgroundWorker组件的相关 ...
- C#多线程之线程池篇2
在上一篇C#多线程之线程池篇1中,我们主要学习了如何在线程池中调用委托以及如何在线程池中执行异步操作,在这篇中,我们将学习线程池和并行度.实现取消选项的相关知识. 三.线程池和并行度 在这一小节中,我 ...
- C#多线程之线程池篇1
在C#多线程之线程池篇中,我们将学习多线程访问共享资源的一些通用的技术,我们将学习到以下知识点: 在线程池中调用委托 在线程池中执行异步操作 线程池和并行度 实现取消选项 使用等待句柄和超时 使用计时 ...
- 重新想象 Windows 8 Store Apps (42) - 多线程之线程池: 延迟执行, 周期执行, 在线程池中找一个线程去执行指定的方法
[源码下载] 重新想象 Windows 8 Store Apps (42) - 多线程之线程池: 延迟执行, 周期执行, 在线程池中找一个线程去执行指定的方法 作者:webabcd 介绍重新想象 Wi ...
- C#多线程和线程池问题
static void Main(string[] args) { Thread threadA = new Thread(ThreadMethod); //执行的必须是无返回值的方法 threadA ...
- Qt多线程-QThreadPool线程池与QRunnable
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt多线程-QThreadPool线程池与QRunnable 本文地址:https:/ ...
随机推荐
- css3整理--transition
transition语法: transition : [<'transition-property'> || <'transition-duration'> || <'t ...
- 使用mui.js实现下拉刷新
闲聊: 最近因公司项目需求,小颖需要写一些html5页面,方便公司IOS和Android给APP中嵌套使用,其中需要实现拉下刷新功能,其实就是调用了一下mui.js就可以啦嘻嘻,下面跟着小颖一起来看看 ...
- nginx 自启动脚本
nginx 自启动脚本 创建脚本 cd /etc/init.d vi nginx 脚本如下: #! /bin/bash # chkconfig: 35 85 15 # description: Ngi ...
- FIFO设计中的深度计算【zz】
FIFO设计中的深度计算: 写时钟频率 w_clk, 读时钟频率 r_clk, 写时钟周期里,每B个时钟周期会有A个数据写入FIFO: 读时钟周期里,每Y个时钟周期会有X个数据读出FIFO: 则,FI ...
- 这些简单实用的Word技巧,你get了吗
快速选中多个对象 如果需要将某些文本设置成相同的格式,我们不需要一个个的设置,只要选中多个文本然后一起设置就可以了. 单击开始——选择编辑——选择——选择格式相似的文本 快速清除所有格式 那么当我们不 ...
- 部署不能产生class文件的问题
项目clean和重新部署项目之后,还是不能产生class文件:查看“Problem”视图,是lib路径有问题,右击项目→“Build Path”→“Configure Build Path”,Libr ...
- vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑
导出弹窗的html <template> <Modal v-model="exportModal" width=400 :closable="false ...
- Older Versions Of Eclipse
Older Versions Of Eclipse Need help with older versions of Eclipse? LTS Request The following are li ...
- iOS调用第三方导航和线路规划
线路规划: https://blog.csdn.net/qq_19979539/article/details/51938995 百度地图:baidumap: 高德地图:iosamap: 腾讯地图:q ...
- python-----实现接口自动化测试(实例4)
实现接口自动化测试1.读取case---从测试用例Excel表格中读取接口请求数据2.调用接口---发送请求获取实际结果3.校验结果---实际结果与预期结果对比4.结果写入表格---将实际结果与测试状 ...