package com.bjsxt.height.concurrent018; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; public class UseThreadPoolExecutor2 implements Runnable{ private static AtomicInteger count = new AtomicInteger(0); @Override public void run() { try { int temp = count.incrementAndGet(); System.out.println("任务" + temp); Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception{ //System.out.println(Runtime.getRuntime().availableProcessors()); BlockingQueue<Runnable> queue = //new LinkedBlockingQueue<Runnable>(); new ArrayBlockingQueue<Runnable>(15); //有界队列执行过程:20个线程,先执行五个(因为初始化了5个)然后判断队列放不放得下剩下的15个,如果放不下 //15个,就再创建5个线程 (因为Max,之前创建了五个,所以还可以再创建五个所以是10),如果放得下,Max参数无效,每次还是执行 //5个线程。那剩下的线程就只能放到队列里。 ExecutorService executor = new ThreadPoolExecutor( 5, //core 10, //max 120L, //2fenzhong TimeUnit.SECONDS, queue); for(int i = 0 ; i < 20; i++){ executor.execute(new UseThreadPoolExecutor2()); } Thread.sleep(1000); System.out.println("queue size:" + queue.size()); //10 Thread.sleep(2000); } }
相关推荐
实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈和队列的应用.docx实验报告——栈...
线程池各类区别使用场景, 工作久了才知道理论的重要性。
Android中的线程池与任务队列
并发-线程池和阻塞队列 并发-线程池和阻塞队列 并发-线程池和阻塞队列
NULL 博文链接:https://j2ee2009.iteye.com/blog/689161
NULL 博文链接:https://hoochiang.iteye.com/blog/2357124
数据结构中栈和队列经典测试题
并发编程demo测试包含线程池、锁、队列、信号、cas等等
数据结构第三章笔记——栈和队列
unix编程——posix消息队列.docx
数据结构(清华大学版)——栈和队列
课程设计报告——医院门诊候诊队列管理系统.pdf课程设计报告——医院门诊候诊队列管理系统.pdf课程设计报告——医院门诊候诊队列管理系统.pdf课程设计报告——医院门诊候诊队列管理系统.pdf课程设计报告——医院门诊...
利用c++ 实现线程池对线程管理,安全队列,并发处理
数据结构(C语言版)——循环顺序队列(代码版)里面包含C文件和exe文件。基本操作为:1:初始化循环顺序队列2:销毁循环顺序队列3:清空循环顺序队列4:循环顺序队列是否为空5:返回循环顺序队列头元素6:元素入队7:元素出队8:...
讲述线程池原理,线程池使用场景和注意事项,手动创建线程池方法,注意事项,阻塞队列的相关知识
北京师范大学数据结构教学资料第3章——栈与队列.ppt
实现了一个线程池。...在队列和线程池之间创建了一个中间夹层,以提高可移植性。当任务来时,先压入队列,然后唤醒线程执行操作。线程完成任务后,再去队列查询,如果有任务就去执行,没有则阻塞,等待
输入若干个整数, 以0结束, 利用入队的操作生成一个循环队列, 求该队列的长度。
定义全局线程池,将用户的请求放入自定义队列中,排队等候线程调用,等待超时则自动取消该任务,实现超时可取消的异步任务
该文件包括堆栈的头文件(Seq开头)和链表的头文件(Lin开头),另外还实现了十进制转化为八进制、对称串判断和带头结点的单循环链表实现链式队列