信息介绍
Java学习一直是很多人坚持的事情,作为时代编程语言的代表,Java开发似乎是每一个互联网公司必备的技术,而高端技术人才更是被社会求贤如渴。对于Java并发编程有以下几个技巧:
1、单一职责原则
分离并发相关代码和其他代码(并发相关代码有自己的开发、修改和调优生命周期)。
2、限制数据作用域
两个线程修改共享对象的同一字段时可能会相互干扰,导致不可预期的行为,解决方案之一是构造临界区,但是必须限制临界区的数量。
3、使用数据副本
数据副本是避免共享数据的好方法,复制出来的对象只是以只读的方式对待。Java 5的java.util.concurrent包中增加一个名为CopyOnWriteArrayList的类,它是List接口的子类型,所以你可以认为它是ArrayList的线程安全的版本,它使用了写时复制的方式创建数据副本进行操作来避免对共享数据并发访问而引发的问题。
4、线程应尽可能独立
让线程存在于自己的世界中,不与其他线程共享数据。有过Java Web开发经验的人都知道,Servlet就是以单实例多线程的方式工作,和每个请求相关的数据都是通过Servlet子类的service方法(或者是doGet或doPost方法)的参数传入的。只要Servlet中的代码只使用局部变量,Servlet就不会导致同步问题。Spring MVC的控制器也是这么做的,从请求中获得的对象都是以方法的参数传入而不是作为类的成员,很明显Struts 2的做法就正好相反,因此Struts 2中作为控制器的Action类都是每个请求对应一个实例。
欢迎具体了解:郑州Java培训机构http://zz.mobiletrain.org/java/
1、单一职责原则
分离并发相关代码和其他代码(并发相关代码有自己的开发、修改和调优生命周期)。
2、限制数据作用域
两个线程修改共享对象的同一字段时可能会相互干扰,导致不可预期的行为,解决方案之一是构造临界区,但是必须限制临界区的数量。
3、使用数据副本
数据副本是避免共享数据的好方法,复制出来的对象只是以只读的方式对待。Java 5的java.util.concurrent包中增加一个名为CopyOnWriteArrayList的类,它是List接口的子类型,所以你可以认为它是ArrayList的线程安全的版本,它使用了写时复制的方式创建数据副本进行操作来避免对共享数据并发访问而引发的问题。
4、线程应尽可能独立
让线程存在于自己的世界中,不与其他线程共享数据。有过Java Web开发经验的人都知道,Servlet就是以单实例多线程的方式工作,和每个请求相关的数据都是通过Servlet子类的service方法(或者是doGet或doPost方法)的参数传入的。只要Servlet中的代码只使用局部变量,Servlet就不会导致同步问题。Spring MVC的控制器也是这么做的,从请求中获得的对象都是以方法的参数传入而不是作为类的成员,很明显Struts 2的做法就正好相反,因此Struts 2中作为控制器的Action类都是每个请求对应一个实例。
欢迎具体了解:郑州Java培训机构http://zz.mobiletrain.org/java/
联系方式
0371-55191750
上一条:企业为什么选择使用工业扫地车
发布供求信息
最新供求
推荐供求
热门供求
热
上海安装密码门禁维修 刷卡门禁维修 感应门禁维修
热
高价回收欧姆龙光电传感器回收AB罗克韦尔继电器回收施克接近开关
热
上海自动门滑轮维修感应门马达维修 玻璃门地弹簧 控制器 感应器维修安装51698695
热
上海木地板水泡鼓包能自行恢复 木地板水泡鼓抽水处理 地板起拱修复
热
上海专业实木复合地板维修安装 地板踢脚线安装 地板受潮起拱修复
热
上海指纹门禁安装 考勤系统维修 门禁考勤系统 指纹门禁系统 密码锁维修安装
热
重交流,倡分享 | 秦汉胡同**届围棋毫社教师联赛开幕
热
新世界日语培训
热
液压支架顶梁侧护板ZY3200/14/32D||ZY320K.0302
热
综采用Y321-020105液压支架侧护板损坏原因