线程安全是不是说保证数据不会被同时两个用户修改呢
最近看书经常看到“线程安全”这个概念,譬如spring里说spring dao模板都是线程安全的,诸如这些场合,不知道怎么去理解线程安全。

解决方案 »

  1.   

    看看Vector或Hashtable类的源码就清楚了
      

  2.   

    在多线程的环境中,如果没有同步,那么代码执行到一半,可能被JVM调度到休息状态。
    假设代码是在做针对某些数据的操作(比如数组的搬动),如果有另一个线程也来操作针对此数据操作,就可能发生不可预知的后果(通常是灾难性的)。
    这就称为非线程安全。线程安全呢,当然就是通过同步来保证此类事件不会发生。
      

  3.   

    线程安全就是 将临界资源(同一时间内只有一个线程可以访问的资源)用synchronized设置为同步的,非线程安全则不进行此限制,多个线程可以同时进行该资源的操作。