Java多线程____Executors线程池的使用和架构原理
来源:互联网 发布:适合学生的网络兼职 编辑:程序博客网 时间:2024/05/20 20:01
1.线程池API类型
1.创建一个可重用固定线程数的线程池
package com.frame.base.thread;import java.util.concurrent.Executors;import java.util.concurrent.ExecutorService;/** * Java线程:线程池 * @author Administrator */public class TestExecutors {public static void main(String[] args) {// 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,ExecutorService executorService = Executors.newFixedThreadPool(2);Thread t1 = new TestThread();Thread t2 = new TestThread();Thread t3 = new TestThread();// 将线程放入池中进行执行executorService.execute(t1);executorService.execute(t2);executorService.execute(t3);// 关闭线程池executorService.shutdown();}}class TestThread extends Thread {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + "运行中。。。");}}1-1.运行结果
2.
//==========创建自定义线程池
int corePoolSize,//核心线程数--线程池初始化创建的线程数量
int maximumPoolSize,//最大线程数,线程池中能创建的最大线程数
long keepAliveTime,//线程存活时间
TimeUnit unit,//线程存货时间单位
BlockingQueue<Runnable> workQueue,//一个阻塞队列
package com.frame.base.thread;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * 自定义线程池 */public class MyExecutors {public static void main(String[] args) {/** * 定义一个阻塞队列 */BlockingQueue<Runnable> blockingQueue = new ArrayBlockingQueue<Runnable>(10);/** * 定义一个线程池执行器 */ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2, 3, 60,TimeUnit.SECONDS, blockingQueue);/** * 创建线程执行 */Thread t1 = new MyThread();Thread t2 = new MyThread();Thread t3 = new MyThread();// 将线程放入池中进行执行threadPoolExecutor.execute(t1);threadPoolExecutor.execute(t2);threadPoolExecutor.execute(t3);// 关闭线程池threadPoolExecutor.shutdown();}}class MyThread extends Thread {@Overridepublic void run() {System.out.println(Thread.currentThread().getName() + "运行中。。。");try {Thread.sleep(300L);} catch (InterruptedException e) {e.printStackTrace();}}}
//运行 结果
//==============线程池架构
阅读全文
0 0
- Java多线程____Executors线程池的使用和架构原理
- java线程池的原理和使用
- Java多线程--线程池的原理分析
- java多线程二(java线程池的分析和使用)
- Java线程池原理(多线程)
- java多线程与线程间通信的原理和方法
- java多线程系列(六)---线程池原理及其使用
- Java 多线程线程池 - 线程池原理
- Java 多线程线程池 - 线程池原理
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- Java线程池架构原理和源码解析(ThreadPoolExecutor)
- 整数划分
- JZOJ__Day 9:【普及模拟】算法学习(sfxx)
- 嵌入式每日学习心得2017.07.14
- React-Native 命令备忘
- JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异
- Java多线程____Executors线程池的使用和架构原理
- Pinhole camera model相机模型
- 【GDOI2018模拟7.14】小奇的糖果 树状数组+扫描线
- 关于请求能抓包到数据但是request取不到数据的问题
- Dagger2在Android开发中的应用
- win32汇编-使用子程序以及堆栈平衡原理
- 使用plsq实现文件压缩zip
- html+css实现子div在父div中居中
- 测试道路之第二周