一个线程new出来一个对象,将引用 传递给另外一个线程,另外一个线程可以使用吗

逍遥YZ
  • 5
新手上路,请多包涵

一个线程new出来一个对象,将引用 传递给另外一个线程,另外一个线程可以使用吗?

评论
阅读 1.4k
2 个回答
✓ 已被采纳

当然可以用,new出来的对象存储在进程的内存空间,进程的所有线程都可以访问进程的所有内存空间,所以java new出来的东西都可以被所有线程共享。

但这有可能导致访问冲突,比如某个线程修改了某个对象的数据,修改到一半,还没改完,另一个线程可能会读取或者再次修改同一个对象的同一个数据,容易把整个进程弄崩溃。

所以对于在不同线程中同时访问的对象,需要作用同步,用synchronized或者其他java提供的线程同步互斥机制。

专业的叫法是对象的发布与逸出

宣传栏