并发编程的艺术笔记-(第一章)并发编程的挑战
来源:互联网 发布:软件测试的项目 编辑:程序博客网 时间:2024/05/22 12:36
并发编程的挑战
上下文切换
多线程不一定比串行快:当累加操作数量较小时,反而并发执行的创建线程和上下文切换的劣势显示出来。
减少上下文切换的方法:无锁并发编程(比如讲数据分段如concurrentHashMap),CAS算法(Compare and Swap,如java的Atomic包中的类),使用最少线程和使用协程(在单线程里实现duo任务的调度,并在单线程里维持多个任务间的切换)。
死锁
避免死锁的几个常见方法:避免一个线程同时获取多个锁避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败。
资源限制
硬件:带宽,硬盘读写速度,CPU速度软件:数据库连接数,Socket连接数(其实数据库连接也是基于Socket连接)解决硬件限制:服务器集群解决软件限制:池化技术
0 0
- 并发编程的艺术笔记-(第一章)并发编程的挑战
- Java并发编程的艺术-第一章<并发编程的挑战>
- 第一章 并发编程的挑战
- 第一章 并发编程的挑战
- Java并发编程的艺术-第一章之并发编程的挑战
- 《Java并发编程的艺术》第一章——并发编程的挑战
- java并发编程的艺术【一】并发编程的挑战
- 第一章 并发编程的挑战 总结
- 《并发编程的艺术》学习笔记 第1章---并发编程的挑战
- 《Java并发编程的艺术》笔记(1)-并发编程的挑战
- 并发编程的挑战
- Java并发编程的艺术--笔记
- Java并发编程的艺术笔记
- Java并发编程的艺术-笔记1
- Java并发编程的艺术-笔记2
- Java并发编程的艺术(一)-----并发编程的挑战及解决方案
- 《Java并发编程的艺术》——第一章总结
- <读书笔记--并发>一、并发编程的挑战
- Spring Boot整合Mybatis
- 谷歌开源图片压缩算法Guetzli实测体验报告
- 常用mysql命令
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- linux ssh 免密码登录配置
- 并发编程的艺术笔记-(第一章)并发编程的挑战
- 怎么理解锁
- list遍历
- 【Matlab学习笔记】1.RGB空间转HSI空间
- 对Java工程目录下各文件夹(或文件)介绍
- Nodejs实战体会
- Java-MOOC第三周作业
- 全方位的技术服务及相关技术解决方案(纯java解决方案)
- 单例java类获取spring的bean方法