前言:
代码简洁与性能高效无法两全其美,本系列文章专注于并发编程,提高性能,本文章是在读 Java Concurrency In Practice时自己总结的一些体会。有理解不正确的地方,还请指出。
请回答以下几个问题:
问题一、你的项目是否运行在多核CPU甚至多CPU的服务器上?
问题二、你的项目中,是否使用到了线程池?
问题三、你的项目是否使用到了集群或者用到了分布式框架?
问题一不用想,任何人都会回答是,那么恭喜你,你已经有必要看看并发编程了。如果你符合以上三个问题的所有条件,那么恭喜你,你应该好好学习并发编程了,并发已经深深渗人你的项目中,甚至已经开始出现一些莫名其妙的问题,或者你已经在为这些并发引起的性能问题着急了。
或许你不信,你可能会说,我并不了解并发编程,但代码仍然稳定的跑了好几年啊!是的,有时候,并不需要深入研究一门技术,才会使用他。就像一个Java程序员,花上半天时间就能写出一个php程序一样,但为什么那样写,你却不一定了解。
并发编程也一样,虽然你觉得自己写的代码不存在并发问题,但实际上,你可能已经跨越了并发编程的白线,只是自己还没有察觉到而已。
我在读并发编程实战时,有这么一些体会,觉得所有的编程人员都有必要对并发编程精读。
1、Java语言出了一些规范(一直都有,只是在并发编程时发现里面对多线程的定义比较宽松),总体意思是说,在缺少同步的代码中,JVM不保证一个线程写入的一个变量值,对另外一个线程立即可见,这样,我们的代码中只要涉及到多线程共享数据,就要注意并发问题。
2、在硬件上,CPU的主频提高已经不太现实,CPU厂家也开始使用“多线程技术”或者多CPU技术,这些多线程会尝试将我们的代码并行化,以提高系统性能,并且这些技术在操作系统级别及JVM级别默认都是允许的,这样,就连硬件也不敢保证你多线程的代码按照你串行的模式运行。
3、编译器不可靠,我们写的Java语言是不能直接在cpu上面运行的,但经过编译器的编译,我们的代码被“优化”,如果我们不采取合适的同步,在运行时,可能会出现一些“惊喜”。
如果你也认同我的这些观点,那么,请好好读读 Java并发编程吧,非常不错的一本书。网上有很多可以下载的资源,有chm版的也有中文pdf版的。
对性能感兴趣?请查看我的并发编程 系列文章,持续更新中
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问 我的空间
相关推荐
java并发编程pdf文档第二部分:Java并发编程实战.pdf、Java多线程编程核心技术.pdf、实战Java高并发程序设计.pdf
本课程将结合大量图示及代码演示,带你掌握多线程并发编程(线程安全,线程调度,线程封闭,同步容器等)与高并发处理思路与手段(扩容,缓存,队列,拆分等),构建完整的并发与高并发知识体系,胜任实际开发中并发...
java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术java并发编程艺术
│ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │ 高并发编程第一阶段27讲...
直接就放在书上,你丫有没有良知,书籍是什么,是希望,是神圣的,你们这些译者简直就是在犯罪 ,不过要是英文功底不好,还是建议买本看吧,谁让你英文水平不如他们呢 《JAVA并发编程实践》随着多核处理器的普及,...
并发编程并发编程并发编程
JAVA并发编程艺术 高清pdf : 1.并发变成的挑战 2. java并发机制的底层实现原理 3. java 内存模型 4. java并发编程基础 5.java中的锁。。。。。。。
高并发和并发编程并发编程:线程安全+线程封闭+线程调度
java并发编程实战源码 附有本书所有源码,maven 导入 eclipse或idea
阿里专家级并发编程架构师级课程,完成课程的学习可以帮助同学们解决非常多的JAVA并发编程疑难杂症,极大的提高JAVA并发编程的效率。课程内容包括了JAVA手写线程池,UC线程池API详解,线程安全根因详解,锁与原子类...
学习并发编程自己总结的知识,非常实用。JAVA学习并发编程的精华
深入讲解java并发编程技术,多线程、锁以及java内存模型等
它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。 《Java并发编程的艺术》内容涵盖...
本书全面讲解C#并发编程技术,侧重于.NET平台上较新、较实用的方法。全书分为几大部分:首先介绍几种并发编程技术,包括异步编程、并行编程、TPL数据流、响应式编程;然后阐述一些重要的知识点,包括测试技巧、互...
Java并发编程常识 Java并发编程常识 Java并发编程常识
Java并发编程艺术Java并发编程艺术Java并发编程艺术Java并发编程艺术Java并发编程艺术
Java 并发编程实战.pdf 目录齐全
java并发编程内部分享PPT
java并发编程java并发编程java并发编程java并发编程java并发编程