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.
JDK1.5多线程提高的更多相关文章
- [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)
[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这 ...
- [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)
[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...
- [.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上)
[.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上) 本节导读: 随着硬件和网络的高速发展,为多线程(Multithreading) ...
- jdk1.5多线程Lock接口及Condition接口
jdk1.5多线程的实现的方式: jdk1.5之前对锁的操作是隐式的 synchronized(对象) //获取锁 { } //释放锁 jdk1.5锁的操作是显示的:在包java.util.concu ...
- JAVA多线程提高十三:同步集合类的应用
1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操 ...
- JAVA多线程提高十四: 面试题
前面针对多线程相关知识点进行了学习,那么我们来来看看常见的面试题: 1. 空中网面试题1 package com.kongzhongwang.interview; import java.util.c ...
- lucene-利用内存中索引和多线程提高索引效率
转载地址: http://hi.baidu.com/idoneing/item/bc1cb914521c40603e87ce4d 1.RAMDirectory和FSDirectory对比 RAMDir ...
- JAVA多线程提高十二:阻塞队列应用
一.类相关属性 接口BlockingQueue<E>定义: public interface BlockingQueue<E> extends Queue<E> { ...
- JAVA多线程提高十一:同步工具Exchanger
Exchanger可以在对中对元素进行配对和交换的线程的同步点.每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象.Exchanger 可能被视 ...
随机推荐
- node-webkit 入门
下载node-webkit 点击这里: https://github.com/rogerwang/node-webkit 找到Downloads这一小节,然后下载对应平台的node-webkit预编译 ...
- 【机器学习算法】Boostrapping算法
参考 1.AdaBoost从原理到实现: 完
- 《DSP using MATLAB》Problem 4.3
代码: %% ------------------------------------------------- %% 1 x(n)=2δ(n-2)+3u(n-3) %% -------------- ...
- Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket
https://blog.csdn.net/a123demi/article/details/78234023 : Springboot集成mybatis(mysql),mail,mongodb,c ...
- 剑指offer-int类型负数补码中1的个数-位操作
在java中Interger类型表示的最大数是 System.out.println(Integer.MAX_VALUE);//打印最大整数:2147483647 这个最大整数的二进制表示,头部少了一 ...
- JMeter分布式部署的大致步骤以及误区解释
master和slave机要在同一网段内,才能做分布式(Jmeter要配环境变量,这样不用手动起server) 分布式不成功,解决方案: 1.master端和slave端要ping通 2.ping通后 ...
- zmediaboard-Hi3518参数及配置
1.12_13.uboot的烧写和flash分区1_21.12.1.裸机烧录uboot(1)什么叫裸机烧录?设备是空白的,未经烧录的,就叫裸机.(2)裸机烧录一个设备有2种方案:1是用外部烧录器来烧录 ...
- tomcat源码阅读之StandardHost和StandardEngine
StandardHost及UML类图: 1.StandardHost类是Host接口的默认实现:其继承自ContainerBase类,说明他也是一个容器类,既然是容器类,那肯定也有管道对象PipeLi ...
- HTTP报头:通用报头,请求报头,响应报头和实体报头
缓存控制优先级从高到低分别是Pragma -> Cache-Control -> Expires 报头 每一个报头都是由 [名称 + ":" + 空格 + 值 + ] ...
- Nginx隐藏主机信息,proxy_hide_header 与fastcgi_hide_header
Nginx中proxy_hide_header 与fastcgi_hide_header都可以隐藏主机头信息,两者在具体使用时还是有着一定的区别的.刚好业务使用的nginx反向代理在显示响应头时将后端 ...