JDK1.5多线程提高
1.名词:
1.任务的执行与任务的提交解耦
2.任务的执行策略-可中断,取消
2.线程封闭机制:
针对单线程池而言,提高任务执行的速度,但是无需锁定
3.饥饿死锁:
任务长期得不到执行,其实就是形成闭合的环路导致,共享资源互相锁定导致
4.超时机制:
指定时间任务完不成,则重新加入的线程的执行队列中等待重新执行(超时就是重试机制)
5.线程池的大小:
做好做成动态的,看CPU的线程数:Runntime.avalibleProcessors()
6.ExecutorService:
线程管理器其实就是一个ThreadPools,里面有线程,任务队列所以我们可以定制ThreadPoolsExecutor(个数,最大个数,空闲时间,任务队列,线程工厂,拒绝处理器)
空闲时间:线程没有被执行的时间间隔,如果一直未被使用,则进行回收
任务队列:用户提交的任务列表,其实就是缓存,等待线程执行---扩展点
线程工厂: 线程池随着需求进行动态创建线程的过程中所使用的线程工厂 ----扩展点
拒绝策略:针对用户提交任务的限制,因为队列是优先的---扩展点
线程工厂:定制特殊的线程
线程池:任务执行前后进行监控 beforeExecute afterExecute
7.队列:
有届队列:大小有限制,超过容量之后将会执行拒绝的执行器
无界队列:
同步移交:针对大队列,直接提交给执行线程
8.Caller-Run:一种饱和机制,任务执行在与Executor的所在线程,应用层进行排队执
9.控制线程池的任务提交的速率就是通过信号量机制进行限制
10.守护线程与非守护线程:(一些业务可以标识为守护线程,自动销毁)
11.
===========================================================
开发中的问题:
1.线程池大小动态设置
2.饱和策略
3.任务执行失败,重试策略
4.
最新文章
- PIL中的Image和numpy中的数组array相互转换
- Spring(1)
- Modern Operating Systems(Ⅰ)——2014.12.15
- linux——基本配置
- Android 中的缓存机制与实现
- Apache—DBUtils
- Moses创建一个翻译系统的基本过程记录,以后会按照每个过程详细说明,并给出每个步骤的参数说明
- 或许你不知道(2):LinkedList
- webservice wsdl 生成服务
- IOS实用功能之截图(来自相册和拍照)
- java学习面向对象之抽象类
- java读取图片的(尺寸、拍摄日期、标记)等EXIF信息
- arp欺骗
- Mybatis学习之JDBC缺陷
- Fibonacci 数列O(logn)解法
- 学起来 —— CSS 入门基础
- JDK--box和unbox
- GIT好文搜藏
- 类 __new__方法实现单例
- Window 下安装 Redis
热门文章
- 手动开启ARC
- 7.3 5种IO模型与IO复用
- Linux下你需要了解的10个网络和监控命令
- C#中IDisposable的用法
- Windows10 解决“装了 .NET Framework 4.5.2/4.6.1/4.7.1等等任何版本 或版本更高的更新”问题
- Passing the Message 单调栈两次
- 定时器setTimeout()的传参方法
- gtx860M,cuda9路1080p多高斯运动检测测试
- Makefile在内核编译中的使用
- stenciljs 学习十 服务器端渲染