看到文章中有这么一句话------
Struts1 Action是单例模式,因此存在线程安全问题,Struts2 Action对象为每一个请求产生一个实例,
因此没有线程安全问题。---------------------------------------
我之前的理解是单实例就是单线程,多实例就是多线程,这个理解正确吗?如果正确,那我反而觉得 单例模式下 应该是线程安全的,而多实例模式下反而是线程不安全的请大家指教!!!

解决方案 »

  1.   

    错误。
    单实例(1vn)是多个线程使用一个对象
    多实例(1v1)是一个线程使用一个对象,多个线程就使用多个实例1vn时必须保证线程安全,不然就小心控制全局变量和方法。
      

  2.   

    Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。 
    ------------------------
    但这些多个实例(线程)在操作同一个资源时,依然存在需要同步的问题啊
    这样的话,还是存在线程安全问题呀请再指教!!!
      

  3.   

    Struts2 Action对象为每一个请求产生一个实例, 这样的话每个线程都用到一个新的Action 互不干涉自然就不存在线程安全问题struts1 中Action 是单实例的,多个线程使用同一个Action 自然就是非线程安全的。
      

  4.   

    理解错误,单实例才会引起线程安全问题,因为只有一个实例,多个线程访问同一个实例,不想出线程安全问题,就加synchronized关键字同步
    如果可以创造多个实例,那么来一个线程创造一个实例,就不存在线程安全问题了