java线程自带队列的使用以及线程阻塞

java线程,设置队列的大小实现队列阻塞

public class QueueThreads {private static int nThreads = 4;//Runtime.getRuntime().availableProcessors() * 2 + 1;private static BlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(4);//队列值大小设置为4private static ExecutorService executors = new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, queue, new ThreadFactory() {private final String threadNamePrefix = "si_query_task_";private final AtomicInteger count = new AtomicInteger(1);@Overridepublic Thread newThread(Runnable r) {Thread t = new Thread(Thread.currentThread().getThreadGroup(), r, threadNamePrefix + count.getAndIncrement());//t.setDaemon(true);return t;}});public static void main(String[] args) {for (int i = 0; i < 10; i++) {try {executors.execute(new Thread(new ThreadPoolTest(), "TestThread".concat("" + i)));int threadSize = queue.size();System.out.println("线程队列大小为-->" + threadSize);} catch(RejectedExecutionException e){System.out.println("阻塞异常");}catch (Exception e) {System.out.println("异常");}}executors.shutdown();}public void run() {synchronized (this) {try {System.out.println("线程名称:" + Thread.currentThread().getName());Thread.sleep(3000); //休眠是为了让该线程不至于执行完毕后从线程池里释放} catch (InterruptedException e) {//e.printStackTrace();
                }}}}

 

本测试程序的队列设置为4,线程池的大小为4,循环开启10个任务执行结果:

分析:有8个任务执行成功了,线程处理完成立马会处理新的任务,但是出现了两个阻塞异常,原因是这两个任务来不及创建就被阻塞了,阻塞的结果就是丢弃。

 

转载于:https://www.cnblogs.com/zyf-yxm/p/10436142.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

init/inittab

一、什么是init  init是Linux系统操作中不可缺少的程序之一。 是一个由内核启动的用户级进程。  内核启动&#xff08;已经被载入内存&#xff0c;开始运行&#xff0c;并已初始化所有的设备驱动程序和数据结构等&#xff09;之后&#xff0c;就通过启动一个用户级程序init…

ASP.NET下QueryString不同字符编码间强制转换的解决方案

正常的情况下&#xff0c;现在asp.net的网站很多都直接使用UTF8来进行页面编码的&#xff0c;这与Javascript、缺省网站的编码是相同的&#xff0c;但是也有相当一部分采用GB2312。对于GB2312的网站如果直接用javascript进行ajax数据提交&#xff0c;例如&#xff1a;http://ww…

C C++面试常问简答题(2)

51.h头文件中的ifndef/define/endif 的作用&#xff1f; 答&#xff1a;防止该头文件被重复引用。 52.&#xff03;i nclude<file.h> 与 &#xff03;i nclude "file.h"的区别&#xff1f; 答&#xff1a;前者是从Standard Library的路径寻找和引用file.h&…

GDB 调试指南

大家好&#xff0c; 好久没给大家带来原创干货了&#xff0c;导致很多新来的小伙伴以为我这个号就是个机构号&#xff0c;其实不是&#xff0c;这个是个人号&#xff0c;背后的小编我是一个有血有肉有情怀的人&#xff0c;不管怎么样&#xff0c;我的目的是尽量带给大家优质的干…

ASP.NET MVC3 异步刷新

ASP.NET MVC3 异步刷新2011-08-13 09:51:53标签&#xff1a;MVC3 异步刷新 休闲 N Layer 职场原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://leelei.blog.51cto.com/856755/638408好久没…

一个反射的妙用案例

今天在工作中遇到一种场景: 一个表格有10个列,要求当点击某列列头时,下拉展示该列的所有数据 解决的常规办法是根据传入的列参数值,判断是哪一列,使用switch()或者if-else判断过滤出哪一列的值 但这个办法太臃肿,如果有100个字段,那这个分支选择就太大了 所以采用反射,你传什么…

常规键盘快捷键

按键 目的 Ctrl A 全选Ctrl B 整理收藏夹Ctrl C 复制Ctrl D 删除/添加收藏Ctrl E 搜索助理Ctrl F 查找Ctrl H 历史记录Ctrl I 收藏夹Ctrl J IE7.0里的源Ctrl L &#xff1d;CtrlO 打开Ctrl M 网页搜索框中的确定&#xff08;等于回车&#xff09;Ctrl N 新窗…

指针和引用的区别和联系

在c的学习中&#xff0c;我们经常被应该如何使用指针和引用这个问题所困扰&#xff0c;那么我这里给大家说一下在我的学习过程中对指针和引用的理解&#xff0c;和它们之间的区别&#xff0c;希望各位朋友给出不同的意见并且指出我在学习中的一些错误首先我们来聊一下指针&…

编译rocksdb源码导致的部署失败

这几天经历了一次心酸的历程&#xff0c;使用了rocksdb第三方库&#xff0c;编译器是7.2&#xff0c;rocksdb是20190701从github上取下来的&#xff0c;由于rocksdb自己的CMakeList.txt中使用了-marchnative编译参数&#xff0c;强制使用了编译代码服务器的cpu指令集&#xff0…

跌倒的收获

有个"渔王"非常苦恼&#xff0c;就因为三个儿子的捕鱼技术都很一般。他常向人诉苦&#xff1a;"我从儿子们刚懂事起就传授技术&#xff0c;怎么他们都比不上平常人的孩子&#xff1f;" 一位路人听后&#xff0c;问&#xff1a;"你一直是手把手地教他们…

检测APK是否混淆

目录 为什么要检测APK是否混淆混淆的优点混淆的缺点APK的混淆的分类检测工具检测人工检测自动化检测为什么要检测APK是否混淆 apk代码混淆就是为了保护代码安全&#xff0c;防止被反编译拿到源码做审计找出危险漏洞&#xff0c;现在大部分的APK都会做混淆。 下面分析混淆APK后的…

基于asp.net的Web开发架构探索(转)

问题由来 最近在研究适合团队开发的web架构解决方案&#xff0c;该架构即要适合分工协作又要有一定扩展性&#xff0c;适合不同的数据库需要&#xff0c;因此我查阅了一些资料&#xff0c;初步构想出了一套架构&#xff0c;请各位多多指教。 探索 web开发架构最经典莫过于三层架…

ubuntu要更新18.04了,lei了lei了~~~

Ubuntu 18.04 LTS将于2018年4月26日发布。开发商现在有六个月的时间来打造“Bionic Beaver 仿生海狸”。 对于那些你不知道Ubuntu 4 &#xff08;xx.04&#xff09;版本遵循27周的时间表&#xff08;而不是10月发行的25周时间表&#xff0c;由于圣诞节和新年的小事情&#xff0…

SkipList 以及高度的确定

转载&#xff1a;https://www.cnblogs.com/lnlvinso/p/8848883.html 结果&#xff1a;skiplist的高度是个随机值。 SkipList理解 记下自己对跳表SkipList的理解。 SkipList采用空间换时间的思想&#xff0c;通过增加数据间的链接&#xff0c;达到加快查找速度的目的。 数据库L…

20个正则表达式,举一反三,相信对你很有用

转载:https://www.cnblogs.com/wxd0108/p/5580772.html 正则表达式经常被用于字段或任意字符串的校验&#xff0c;如下面这段校验基本日期格式的JavaScript代码&#xff1a; var reg /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; var r fieldValue.match(reg); if(rnull)a…

约瑟夫环问题---循环单链表

约瑟夫环问题是比较经典的问题&#xff0c;原来做的题目是依次输出数字&#xff0c;而原来的循环链表结构不改变&#xff0c;今天遇到一道题是要求按照顺序重新组成一个循环单链表。 题目&#xff1a;一些人围坐一圈报数&#xff0c;形成一个循环单链表&#xff0c;当报数是m或…

IIS AppCreate子目录的错误(0x80020006)

这几天做了升级用的安装包,需要在原来的ASP 的虚拟目录下&#xff0c;再创建一个新的ASPNet 虚拟目录。上网查了C# iis设定的资料&#xff0c;按照上面一路做下来&#xff0c;还是无法成功过。 代码只有两行&#xff0c;如下&#xff1a;DirectoryEntry siteVDir new Director…

网络通信TCP协议三次握手

刚刚看linux公社看见里面一个讲TCP的文章&#xff0c;文章讲的很有意思生动形象&#xff0c;很有助于对TCP协议的理解和掌握&#xff0c;所以转载过来方便以后看一下HAHA~~~TCP是什么? TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 …

聊聊RocksDB Compact

导语 对于 LevelCompact 策略&#xff0c;RocksDB会根据每一层不同的策略计算出CompactScore&#xff0c;根据CompactScore大小来决定那一层将会优先进行Compact&#xff0c;然后选择Level-N 和Level-(N1&#xff09;的文件进行Compact。如何计算CompactScore&#xff1f; 如何…

Android入门逆引手册 - 12 评分条(RatingBar)的使用

这里介绍评分条android.widget.RatingBar类的使用。 ● 评分&#xff08;星&#xff09;的最大数的设置&#xff0c;调用setNumStars()方法。● 现在的评分的设置&#xff0c;调用setRating()方法。 例程源码(Java)[java]RatingBar ratingBar (RatingBar)findViewById(id.rati…