Java并发编程艺术----读书笔记(一)

Java并发编程艺术----读书笔记(一)_第1张图片

 

并发编程的挑战

1上下文切换。

cpu通过时间片分配算法来执行任务,从一个任务切换到另一个任务时会保留上个任务的状态。

多线程切换上下文开销大,不一定比单线程快。

 

 

减少上下文切换的方法

 

1无锁并发,不同线程处理不同数据段

2CAS算法,java的原子编程使用此算法,不需要加锁。

3最少线程编程

4协程:单线程多任务,并且支持切换。

 

2死锁

 

 

3 资源限制的挑战:

1网络带宽限制,硬件限制

2资源限制会导致并发效率低下

3硬件资源限制可以用分布式集群解决资源限制问题,让程序在多机执行。

软件资源,可以采取资源池复用的方式,如数据库连接池,socket连接复用,webservice连接复用等。

4资源受限时的并发,根据资源调整并发度,比如根据带宽调整,根据数据库连接数调整。

 

微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 

 

 

                     Java并发编程艺术----读书笔记(一)_第2张图片

你可能感兴趣的:(Java并发编程艺术----读书笔记(一))