Java之创建线程的方式四:使用线程池
2024-09-07 03:49:02
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor; /**
* 创建线程的方式四:使用线程池
*
* 好处:
* 1.提高响应速度(减少了创建新线程的时间)
* 2.降低资源消耗(重复利用线程池中线程,不需要每次都创建)
* 3.便于线程管理
* corePoolSize:核心池的大小
* maximumPoolSize:最大线程数
* keepAliveTime:线程没有任务时最多保持多长时间后会终止
*
*
* 面试题:创建多线程有几种方式?四种!
*/ class NumberThread implements Runnable{ @Override
public void run() {
for(int i = 0;i <= 100;i++){
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName() + ": " + i);
}
}
}
} class NumberThread1 implements Runnable{ @Override
public void run() {
for(int i = 0;i <= 100;i++){
if(i % 2 != 0){
System.out.println(Thread.currentThread().getName() + ": " + i);
}
}
}
} public class ThreadPool { public static void main(String[] args) {
//1. 提供指定线程数量的线程池
ExecutorService service = Executors.newFixedThreadPool(10);
ThreadPoolExecutor service1 = (ThreadPoolExecutor) service;
//设置线程池的属性
// System.out.println(service.getClass());
// service1.setCorePoolSize(15);
// service1.setKeepAliveTime(); //2.执行指定的线程的操作。需要提供实现Runnable接口或Callable接口实现类的对象
service.execute(new NumberThread());//适合适用于Runnable
service.execute(new NumberThread1());//适合适用于Runnable // service.submit(Callable callable);//适合使用于Callable
//3.关闭连接池
service.shutdown();
} }
最新文章
- LintCode Min Stack
- js随机颜色生成
- vs2013常用快捷键收集
- 05 Linux下开发JSP项目(Hello world)
- 【BZOJ 1003】 [ZJOI2006]物流运输trans
- mssql函数demo
- 【USACO 3.2.1】阶乘
- Break the Chocolate(规律)
- 设计模式(四)原型模式Prototype(创建型)
- Spider_Man_4 の BeautifulSoup
- HTML <;td>; 标签的 rowspan 属性
- 如何使用Sencha touch 构建基于Cordova的安卓项目
- nodejs03-GET数据处理
- django重定向
- BZOJ.4771.七彩树(可持久化线段树)
- 关于java前端入门的一些简单的看法
- 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)
- spring &; java 面试
- Python之函数的递归、匿名函数、内置函数
- linux 进程guanl管理的常用几个命令