首先我们知道要编写出优质的并发代码是一件很难很难的事,Java对多线程的支持从第一个版本就开始了,这一点在那个年代看来是很不得了的一件事情,但是当我们逐渐的认识到了并发编程,对他有了更加深刻的认识以及付出更多实践的时候,再去实现并发编程就会拥有更好的方案和选择了。

那么为什么需要并发呢

并发我们可以看成是为了解耦和而存在的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。这样做的好处是显而易见的,明显的改善了程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同工作)。凡是做过Java Web开发工作的程序员都知道,Java Web中的Servlet程序在Servlet容器的支持下采用单实例多线程的工作模式,Servlet容器为你处理了并发问题。

对于并发编程有着以下误解和正解

最常见的对并发编程的误解有以下这些:-并发总能改进性能(并发在CPU有很多空闲时间时能明显改进程序的性能,但当线程数量较多的时候,线程间频繁的调度切换反而会让系统的性能下降)

-编写并发程序无需修改原有的设计(目的与时机的解耦往往会对系统结构产生巨大的影响)

-在使用Web或EJB容器时不用关注并发问题(只有了解了容器在做什么,才能更好的使用容器)

下面的这些说法才是对并发客观的认识:-编写并发程序会在代码上增加额外的开销

-正确的并发是非常复杂的,即使对于很简单的问题

-并发中的缺陷因为不易重现也不容易被发现

-并发往往需要对设计策略从根本上进行修改

其实我更想说,问那么多干嘛,直接学就对了。这是必须的,很多的场景和业务都要用到,撸起袖子就是干!