Java并发读取需要锁吗

Python031

Java并发读取需要锁吗,第1张

读取不需要锁

如果存在同时读写的行为需要锁

根据需要增加不同的锁,X锁其他线程不能读也不能写,S锁,其他线程可以读,但是不能写

线程安全是指要控制多个线程对某个资源的有序访问或修改,而在这些线程之间没有产生冲突。

在Java里,线程安全一般体现在两个方面:

1、多个thread对同一个java实例的访问(read和modify)不会相互干扰,它主要体现在关键字synchronized。如ArrayList和Vector,HashMap和Hashtable(后者每个方法前都有synchronized关键字)。如果你在interator一个List对象时,其它线程remove一个element,问题就出现了。

2、每个线程都有自己的字段,而不会在多个线程之间共享。它主要体现在java.lang.ThreadLocal类,而没有Java关键字支持,如像static、transient那样。