繁体   English   中英

Java是否具有可转移对象(多线程概念)

[英]Does java have Transferable Objects (Multi Threading Concept)

Javascript具有可转移对象,用于将对象转移到网络工作者,而无需进行复制以确保线程安全。 不需要复制,因为一旦Web Worker拥有了该应用程序,该应用程序就不再对其具有引用。 换句话说,引用是由工作人员或应用程序持有的,但不能同时拥有两者。 Java中有类似的机制吗?

不,根据定义,Java没有可传输对象,因为JVM中没有什么可以阻止两个引用值引用同一实例。

但是,存在各种类型的生成器 (请参阅Buildped Pattern,Wikipedia ),可用于构造对象,然后从中构造不可变的实例,由于实例是不可变的,因此可以保证线程安全。 最著名的生成器是StringBuilder 我不知道java附带的其他任何构建器,但我知道有很多具有构建器的库,例如Guava(Wikipedia) ,请参见ImmutableMap.Builder<K,V>Google guava文档 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM