线程池学习笔记 (初识线程池...)
2018-02-23 02:35
183 查看
线程池: ? 为什么使用线程池 1/ 线程缺乏统一管理,占用过多资源, 2/ 缺乏更多的功能 ,如 定时执行 , 定期执行等 -------------------------------------------- 使用线程池的优势: 1/重用存在的线程,减少创建,消亡线程的开销 2/有效控制最大并发数 , 提高系统资源使用率 3/ 定时执行,定期执行等 ------------------------ 线程池位于 java.util.concurrent包中 顶级接口Executor ,真正线程池的接口ExecutorService java.util.concurrent.Executors类提供了创建线程池的方法 -------------------------------------------------------------- 创建线程的方法; Executors.newCachedThreadPool();//创建一个可以缓存的线程池,有任务时才创建新任务 Executors.newSingleThreadExecutor(); //创建单一线程 Executors.newFixedThreadPool(3); // 创建固定个数线程的线程池 Executors.newScheduledThreadPool(2); // 创建一个固定长度的线程池,而且可以延迟或者定时的方式执行任务*/ ------------------------------------------------------------------------------------------------------------- public class PoolTest { public static void main(String[] args) { //创建线程池 ExecutorService executorService = Executors.newCachedThreadPool(); int i= 10; while (i>0) { i--; executorService.execute(new MyRunable(10)); try { Thread.sleep(100); //每次执行任务后休眠100毫秒 } catch (InterruptedException e) { e.printStackTrace(); } } } } class MyRunable implements Runnable { int s; public MyRunable(int s) { this.s = s; } @Override public void run() { System.out.println(Thread.currentThread().getName()+"========="+s); } } ------------------------------------------------------------------------------------------------------------- 结果: pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 pool-1-thread-1=========10 ------------------------------------------------------------------------------------------------------------- 当取消掉休眠后: 可以发现线程池的优势: 可以发现最高的时候有8个线程在执行,其中1,3 线程执行了两次 pool-1-thread-1=========10 pool-1-thread-3=========10 4000 pool-1-thread-4=========10 pool-1-thread-1=========10 pool-1-thread-3=========10 pool-1-thread-5=========10 pool-1-thread-2=========10 pool-1-thread-6=========10 pool-1-thread-7=========10 pool-1-thread-8=========10
相关文章推荐
- LINUX内核USB子系统学习笔记之初识USB (带枚举usb数据包)
- capwap学习笔记——初识capwap(三)
- 小韵游戏开发学习笔记——第二期:初识Unity3D
- GSON学习笔记之初识GSON
- Play! Framework 学习笔记(一):初识Play
- LR学习笔记八 之 初识LR动态链接库
- Docker学习笔记(1)-初识docker
- 【学习笔记】Python基础-Web 开发初识
- xml学习笔记①初识xml
- [flash and php bible 学习笔记]初识 socket 1
- Java并发读书学习笔记(七)——线程池
- python学习笔记 - 初识socket
- Lua学习笔记(2)--初识手机游戏编程模式
- JavaWeb学习笔记:初识JSP内置对象
- Play! Framework 学习笔记(一):初识Play
- Python个人学习笔记1_初识python_http服务器篇
- BREW学习笔记 - 初识Brew
- JSC学习笔记:JavaScriptCore 初识
- capwap学习笔记——初识capwap(四)
- wpf学习笔记---初识xaml标签语言