线程池3rd卷:龙卧浅滩等海潮
笑谈ThreadFactory
全世界让一个人沉默并不比一个人让全世界沉默更具有正当性。——约翰•密尔
眼看你的饭店生意越做越大,又出现了一个头疼的问题——厨师管理问题。福祸相依,你发现有些厨师培训学校的校长开始主动找你喝茶,大家都心知肚明,这是“醉翁之意不在酒”,校长是来推销自己的学生,进而提高学校的就业率。你表面上装出一副为难的样子,心中已有主意。
ThreadFactory就是我们抽象的厨师培训学校,对于厨师的等级,姓名,状态**(Thread的 priority, name ,daemon status…**)等工作全部可以集中在这里处理。
public interface ThreadFactory {/*** Constructs a new {@code Thread}. Implementations may also initialize* priority, name, daemon status, {@code ThreadGroup}, etc.* 创建新线程,可以在这里设置线程的权限,名称,守护状态的...*/Thread newThread(Runnable r);
}
为了让饭店生意不出现什么意外,还需要指定一个默认厨师培训学校(DefaultThreadFactory)。
/*** The default thread factory* 默认的“厨师培训学校”*/static class DefaultThreadFactory implements ThreadFactory {private static final AtomicInteger poolNumber = new AtomicInteger(1);private final ThreadGroup group;private final AtomicInteger threadNumber = new AtomicInteger(1);private final String namePrefix;DefaultThreadFactory() {/*** 这里的SecurityManager就不展开讨论,有需要的下方评论,看情况出一篇文章* ThreadGroup 顾名思义,代表一个线程集合,是树状结构。*/SecurityManager s = System.getSecurityManager();// getThreadGroup() 创建实例化任何一个线程都会被调用。group = (s != null) ? s.getThreadGroup() :Thread.currentThread().getThreadGroup();namePrefix = "pool-" +poolNumber.getAndIncrement() +"-thread-";}public Thread newThread(Runnable r) {Thread t = new Thread(group, r,namePrefix + threadNumber.getAndIncrement(),0);if (t.isDaemon())t.setDaemon(false);if (t.getPriority() != Thread.NORM_PRIORITY)t.setPriority(Thread.NORM_PRIORITY);return t;}}
到了这里,你突然有点怀疑自己当初的选择(做一只程序猿)…
线程池3rd卷:龙卧浅滩等海潮相关推荐
- 线程池6th卷:大展经纶补天手
聊一聊Doug Lea的生意经 1.第一阶段:Executor 早期创业时候不想那么多,能做生意就行.所以只有一个方法:execute() public interface Executor {voi ...
- 线程池2nd卷:虎落平阳被犬欺
善治病者,必医其受病之处: 善救弊者,必塞其弊之源 书接上文线程池的设计思路,带着如何设计拒绝策略的你,又回顾了整个流程,突然你想这事因排队而起,能不能在排队的队列上有所改进. 第一部分 排队也是值得 ...
- linux线程池实现多线程并发,基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF...
基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF 第 卷 第 期 电子设计工程 年 月 基于 的多线程池并发 服务器设计 陈 涛 任海兰 武汉邮电科学研究院 湖北 武汉 摘要 时至今 ...
- [转]javaandroid线程池
java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一) java多线程同步以及线程间通信详解&消费者生产者模式&死锁 ...
- 池化技术及jdk的线程池讲解
概述 程序运行的本质是消耗系统资源,线程.数据库连接等都会耗费系统的资源.线程.数据库连接等的创建.销毁等都十分消耗系统资源,所以,如果使用池化技术(线程池.数据库连接池等),可以对系统资源进行控制和 ...
- python进程池和线程池_python自带的进程池及线程池
进程池 """ python自带的进程池 """ from multiprocessing import Pool from time im ...
- 借鉴美团文章实现的动态线程池,已开源
大家好, 我是龙台 给自己定了个小目标,hippo4j 年底达到 1k star! GitHub:https://github.com/acmenlt/dynamic-threadpool Site: ...
- 线程池踩坑记 --load飙高的原因
去年处理过一个美图的问题,最近又碰到类似问题了,发现跟美图那个案例原因是一样的,在这里拿出来给大家分享一下. 应该是去年6月底,我们私有化发布了新版本,然后就拿去给美图客户安装部署了,美图的美拍应用访 ...
- Java线程池(超详细)
文章目录 1. 线程池概念 2. JUC线程池架构 3. Executors创建线程的4种方法 4. 线程池的标准创建方式 5. 向线程池提交任务的两种方式 6. 线程池的任务调度流程 7. Thre ...
最新文章
- CodeForces 157A Game Outcome
- [SpringBoot之Druid]
- HDU - 2041 - 超级楼梯(dp)
- 【数据结构】B-Tree, B+Tree, B*树介绍
- matplotlib 制作不等间距直方图
- 全数字实时仿真平台SkyEye和同步数据流语义与翻译正确性验证
- qstore 的 chunk重构小记
- C++自己实现一个String类
- python的金融计算器_Python计算器
- GAMBIT、ICEM、HYPERMESH耦合面的处理方法
- 冰点还原精灵有什么作用
- python如何裁剪图像
- hibernate之SessionFactory和Session
- PNN模型理论和实践
- 《JavaScript 的诞生》
- 手机电脑卖不动,AR\VR和自动驾驶也不给力;苹果的未来在哪里?
- java数据结构 农夫过河_数据结构笔记分享:18 农夫过河(图的算法运用)
- ZX297520V3T:Codec NAU88C22驱动调试
- 33种语言的中文名称、本地名称、英文名称
- Snort预处理器之`sfPortscan`