JAVA并发编程实践读后感

最近抽空看完了《JAVA并发编程实践》一书。
该书的作者之一是concurrent包的作者Doug Lea。令我对本书抱有很大期望,读完之后感觉感觉有点失望,作者用了很大的篇幅来阐述concurrent包的API的用法。

总结如下:
1.为什么会产生并发问题?只有产生单点依赖的时候,并发问题就随之产生了。很多时候,其实只要我们养成良好的编程习惯。尽量让你的代码保持无状态性。就能解决一部分并发问题,也就是原子性问题。

2.并发程序的好处:
2.1如果是单CPU环境,如果你并发的算法够良好的话,那么就能尽最大可能来利用你的CPU资源,但是如果你的程序对CPU利用率没什么要求,或者你程序的瓶颈根本不在CPU,而是在其他地方占用了很大的耗时的话,我劝你还是放弃做并发的实践吧,毕竟复杂的算法是需要足够的维护成本的,一点点的变动会带来不可遇见的问题。

2.2如果是多CPU环境,并发可以让你多个线程同时工作。

3.concurrent框架
该框架是Doug Lea的得意之作。
其中主要有:
1).Executor框架
2).队列
3).原子工具
4).ReentrantLock这样的显示锁,可以进行读写分离
5).CAS(比较并交换)
4.优化
1).尽量将你的锁粒度降低到最低,比如读写分离,比如锁拆分等等
2).安全初始化技巧,lazy load的方法,不要用dcl等等。

你可能感兴趣的:(java,多线程,编程,算法,框架)