线程安全总结

1.线程安全

  就是指多个线程操作同一个对象时采用了加锁机制,只有在当前线程操作这个对象完毕之后,其他线程才能操作这个对象。因此可防止数据不一致现象。

2.非线程安全

  是指多个线程操作同一个对象可能会出现问题。而线程安全则是多线程操作同一个对象不会有问题。

3.经常遇到的

  线程安全的    :Vector  HashTable  StringBuffer

  线程不安全的:ArrayList   HashMap  StringBuilder    LinkedList

4.还有一点需要注意的就是:

  非线程安全 != 不安全    

  举个例子说明,例如在主线程中new的一个ArrayList然后多个线程操作同一个ArrayList对象。

  如果是每个线程中new一个ArrayList,而这个ArrayList只在这一个线程中使用,那么肯定是没问题的。换句话说,在使用非线程安全的时候,只需要让每一个线程只操作自己对应的那一个对象就肯定没问题的。

5.线程安全的实现

  线程安全是通过线程同步控制来实现的,也就是在代码块或者方法上加synchronized关键字。当然了,多个synchronized关键字修饰的代码块必须是使用的同一个监视器,只有这样才是真的同步;否则,也实现不了同步。

6.加同步锁会使程序性能降低

posted on 2019-02-26 17:36  剧本大师  阅读(188)  评论(0编辑  收藏  举报