在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Java编程开发学习需要掌握的知识点很多,并发编程作为Java学习中的难点,也是实际应用中最常用的。编写优质的碧昂发代码并不是一件容易的事情。但是如果我们对并发编程有了更多的认识和实践,就会有更多的方案和更好的选择来实现并发编程。下面就是针对Java学习中关于并发编程的问题总结。

为什么需要并发
并发其实是一种解耦合的策略,它帮助我们把目标和时机分开。这样做可以明显改进应用程序的吞吐量和结构。做过Java Web开发的人都知道,Java Web中的Servlet程序在Servlet容器的支持下采用单实例多线程的工作模式,Servlet容器为你处理了并发问题。
误解和正解
常见的对并发编程的误解有以下这些:
并发总能改进性能(并发在CPU有很多空闲时间时能明显改进程序的性能,但当线程数量较多的时候,线程间频繁的调度切换反而会让系统的性能下降) -编写并发程序无需修改原有的设计(目的与时机的解耦往往会对系统结构产生巨大的影响) -在使用Web或EJB容器时不用关注并发问题(只有了解了容器在做什么,才能更好的使用容器)
下面的这些说法才是对并发客观的认识:
编写并发程序会在代码上增加额外的开销 -正确的并发是非常复杂的,即使对于很简单的问题 -并发中的缺陷因为不易重现也不容易被发现 -并发往往需要对设计策略从根本上进行修改。
并发编程的原则和技巧
单一职责原则,分离并发相关代码和其他代码(并发相关代码有自己的开发、修改和调优生命周期)。
限制数据作用域,两个线程修改共享对象的同一字段时可能会相互干扰,导致不可预期的行为,解决方案之一是构造临界区,但是必须限制临界区的数量。
使用数据副本,数据副本是避免共享数据的好方法,复制出来的对象只是以只读的方式对待。Java 5的java.util.concurrent包中增加一个名为CopyOnWriteArrayList的类,它是List接口的子类型,所以你可以认为它是ArrayList的线程安全的版本,它使用了写时复制的方式创建数据副本进行操作来避免对共享数据并发访问而引发的问题。
线程应尽可能独立
让线程存在于自己的世界中,不与其他线程共享数据。有过Java Web开发经验的人都知道,Servlet就是以单实例多线程的方式工作,和每个请求相关的数据都是用Servlet子类的service方法(或者是doGet或doPost方法)的参数传入的。只要Servlet中的代码只使用局部变量,Servlet就不会导致同步问题。Spring MVC的控制器也是这么做的,从请求中获得的对象都是以方法的参数传入而不是作为类的成员,很明显Struts 2的做法就正好相反,因此Struts 2中作为控制器的Action类都是每个请求对应一个实例。
目前国内Java程序员依旧处于高薪的行列。在企业高速发展的过程中,企业对程序员的要求日渐提高,所以要求每一个Java从业者都需要更加扎实的掌握所学习的技能。了解更多关于Java课程学习的学习路线图。可以参考博学谷Java课程。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
如何激活IDEA?新手激活教程
Java的开发者都知道IDEA是一款常见且公认最好的Java开发工具,很多eclipse或者myeclipse的用户也正在使用着IDEA,它在智能代码助手、重构、各类版本工具、代码自动提示、代码分析等方面被广泛使用。既然IDEA如此好用,那么如何激活IDEA开始使用呢?本文就为大家介绍新手激活IDEA的教程,感兴趣就赶紧看下去吧!
11506
2019-11-01 14:57:00
java培训班出来有用吗?实践出真知!
话不能说的绝对。虽说条条大路通罗马, java交通真发达。java培训班出来有用吗?实践出真知!但半途弃java的人多只有多,成功的只有少数,如果真想从事这方面工作,小编还是建议你早起的鸟儿有虫吃,赶紧加入java这条大路吧。
6496
2020-01-09 18:29:53
Spring框架功能模块构成及概念
Spring框架功能模块构成,Spring框架采用分层架构,功能要素被分成20个模块,分为Core Container、Data Access/Integration、Web、AOP、Instrumentation、Messaging和Test。
7532
2020-05-19 11:28:45
Java案例基础练习汇总附答案
在完成了Java基础语法的学习之后,要想更好的巩固相应的知识点,最好的办法就是多做一些Java案例的基础练习。本文为Java基础语法的学习者整理汇总了一些基础练习项目,比如减肥计划if版本、减肥计划switch版本、逢七跳过、不死神兔和百钱白鸡等练习题目,还附上了代码实现的具体答案,下面一起来做做吧~
7533
2020-05-25 09:40:19
Java基础练习案例整理附答案
对于Java的学习者来讲,学习Java基础语法打好基础是至关重要的一步。但是如果只是一味的看视频或者看书灌输理论知识,是很难真正掌握Java的基础知识的。那么 ,我们除了了解学习理论,还需要尝试做一些相应的练习题,这样才能巩固所学知识,做到活学活用。本文为大家整理了Java基础练习案例,并附上了答案,大家可以试着做一做。
8004
2020-05-26 15:48:40
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
