Java并发编程的艺术(一)并发编程的挑战

1、上下文切换

(1)定义:CPU通过不停地切换线程来实现多线程的执行,一个任务从暂存到重新加载的过程就是一次上下文切换。

(2)减少上下文切换方法:无锁并发编程、CAS算法、使用最少线程和使用协程。

 

2、死锁的处理

(1)避免一个线程同时获取多个锁。

(2)尽量保证每个锁只占用一个资源。

(3)尝试使用定时锁

(4)对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况。

 

3、资源限制

(1)硬件资源限制有带宽的上传/下载速度、硬盘读写速度和CPU的处理速度。

(2)软件资源限制有数据库的连接数和socket连接数等。

(3)对于硬件资源限制可以考虑使用集群并发执行程序,软件资源则可以考虑使用资源池将资源复用(比如数据库的连接池)。

posted on 2019-07-05 21:46  逍遥1989  阅读(160)  评论(0)    收藏  举报