专注培养泛IT高端人才

陕西新榜样官方网站

您的位置: 主页 > 新闻动态 > IT资讯 >

并发编程的数据处理是什么?

来源:陕西新榜样软件科技有限公司 发布时间:2018-07-17 浏览量:

  执行并发处理的时候,与单线程处理不同,并发的数据更为繁杂,所以并发编程的数据处理与单线程编程有诸多不同,本文就此做一点介绍。

  并发编程的基本要求:

  1、单一职责原则

  分离并发相关代码和其他代码(并发相关代码有自己的开发、修改和调优生命周期)。

  2、限制数据作用域

  两个线程修改共享对象的同一字段时可能会相互干扰,导致不可预期的行为,解决方案之一是构造临界区,但是必须限制临界区的数量。

  3、使用数据副本

  数据副本是避免共享数据的好方法,复制出来的对象只是以只读的方式对待。Java5的java.util.concurrent包中增加一个名为CopyOnWriteArrayList的类,它是List接口的子类型,所以你可以认为它是ArrayList的线程安全的版本,它使用了写时复制的方式创建数据副本进行操作来避免对共享数据并发访问而引发的问题。

  4、线程应尽可能独立

  让线程存在于自己的世界中,不与其他线程共享数据。有过JavaWeb开发经验的人都知道,Servlet就是以单实例多线程的方式工作,和每个请求相关的数据都是通过Servlet子类的service方法(或者是doGet或doPost方法)的参数传入的。只要Servlet中的代码只使用局部变量,Servlet就不会导致同步问题。springMVC的控制器也是这么做的,从请求中获得的对象都是以方法的参数传入而不是作为类的成员,很明显Struts2的做法就正好相反,因此Struts2中作为控制器的Action类都是每个请求对应一个实例。

IT培训 服务