




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
并发概念
•进程与线程
•线程安全
•临界资源
•竞争
・锁
•可见性
•原子性
•什么时候使用多线程
•无处不在的线程
什么时候使用多线程
线程安全
.专多个俵彩⑥娟杨向一个荚时,治果
■彳用老虎这些名怒的调度"文药外功,
苦虹调用方代恁彳需恁额外的协调,
恒个手的行为仍受立锦的,那小这个
英就受旗彩名全的。
临界资源与竞争
原子性
0
无处不在的线程
即使你们没有创建过任何线程,
也不能说线程和你无关
Servlet
Struts1的Action
0%
创建线程对象
newThread(){
©Override
publicvoidrun(){
)
};
newThread(newRunnable(){
publicvoidrun(){
)
});
线程启停
启动:
thread.start();
wait
join
sleep
停止1:停止2:InterruptibleChannel
thread.stop();thread.interrupt();
停止3:
while(lstop){
)
,n
0
stop=true;
等待线程结束
thread.join();
or
thread.join(IOOO);
FutureTask<lnteger>task=newFutureTask<lnteger>(newCallable<lnteger>(){
publicIntegercall()throwsException{
returnnull;
)
});
newThread(task).start();
Integerresult=task.get();
•显式锁
Locklock=newReentrantLock();lock.tryLock();
lock.lock();
try{lock.locklnterruptiblyO;
}finally{
lock.unlock();
}
读写锁
ReadWriteLocklock=newReentrantReadWriteLock();
Lockr=lock.readLock();
Lockw=lock.writeLock();
信号量
Semaphoresema=newSemaphore(3);
sema.acquire();
sema.releaseO;
等待和通知
Listlist;
thread1:
synchronized(list){
if(list.isEmpty()){
list.wait();
)
}
Thread2:
synchronized(list){
list.add(a);
list.notify();
}
0
等待和通知Condition
Locklock=newReentrantLock();
Conditionconditionl=lock.newCondition();
Conditioncondition2=lock.newCondition();
condition1.await();
condition1.signal();
0
可见性
•volatilebooleanstop
原子变量
•Atomiclnteger>AtomicBoolean>
AtomicReference
compareAndSet
decrementAndGet
集合类
•线程安全
Vector(ConcurrentModificationException
)Hashtable(
ConcurrentModificationException)
线程不安全
LinkedListArrayListHashMap
*,0
0%
并发集合类
•BlockingQueue
take()
•ConcurrentMap
putlfAbsentreplace(Kkey,VoldValue,VnewValue)
•ConcurrentLinkedQueue
非阻塞线程安全队列
•CopyOnWriteArrayList
多遍历,少插入
••n
0%
线程池
•Executors.newCachedThreadPool
Executors.newFixedThreadPool
•Executors.newSingleThreadExecutor
•Executors.newScheduledThreadPool
•ThreadPoolExecutor
ScheduledThreadPoolExecutor
••r>
0%
多线程系统设计
线程安全设计
•高性能线程设计
线程安全设计
•识别临界资源
•线程安全设计
识别临界资源
•JAVA语言内的临界资源
static的变量
类的成员变量
•即:一个类没有成员变量,也没有访问别的static的变量
,并且其函数的参数是线程安全的,那么这个类一定是线
程安全的。
线程安全设计
•不可变的类一定是线程安全的。
•控制变量的可见区域
控制使用在一个方法里
使用threadlocal方法
•最后考虑使用锁
*,0
0%
线程性能设计
•amdahl定律
•高性能设计方法
amdahl定律
0
提高并行度
影响并行度的因素
锁、同步
设计因素
尽量无锁并发
•合理设计,限定对象的作用范围
•尽量不要再搞所谓的对象池
structsl——>structs2
*,0
0%
合理的使用锁
Lor
•只锁必要的,减小锁的范围
•快进快出,不要锁10等慢的操作,如属竞
争资源,变更设计
分离锁,加大锁的数量,每个锁控制一部
分资源。
•锁不止影响并行度
加大java额外操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 税务师网盘课件
- 中国仿古白漆行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 2025-2031年中国花生牛奶行业发展前景预测及投资方向研究报告
- 2025年中国电子材料行业市场前景预测及投资战略研究报告
- 中国特种陶瓷成型蜡项目投资可行性研究报告
- 中国土矿石开采项目投资可行性研究报告
- 2025年中国炸鸡调料行业市场调研及未来发展趋势预测报告
- 2025年中国针式陶瓷绝缘子行业发展监测及投资战略规划报告
- 培训服务合同
- 储能电池项目可行性研究报告模板及范文
- 2025年安全月主要责任人讲安全课件三:安全月主题宣讲课件
- 病原微生物识别技巧试题及答案
- 绿植移植合同协议
- 2024-2025学年高中中国航天日班会 课件 弘扬航天精神 逐梦星辰大海
- 胶质瘤术后护理查房
- 缝纫初步知识培训课件
- 不稳定型心绞痛护理诊断及护理措施
- 年中国金骨莲胶囊市场分析及发展策略研究预测报告
- 8.4 流体压强与流速的关系 课件-2024-2025学年沪科版物理八年级下册
- 【北师大版】2024-2025学年一年级数学下册教学计划(及进度表)
- 药品配送运输流程图解
评论
0/150
提交评论