gpt4 book ai didi

java - 当对象被另一种方法处理时管理对象属性的更改

转载 作者:行者123 更新时间:2023-12-01 10:45:29 25 4
gpt4 key购买 nike

这主要是一个 Java 问题。 Android标签主要是表示处理对象的方法是在UI线程上运行的。

假设我有一个名为 Device 的类。并且后台线程会高频度地更新Device的实例。更新时,实例将传递给名为 processThisDevice(Device device) 的方法。

当我处理设备时,后台线程会更新设备的实例(可能会多次)。此更改将反射(reflect)在 processThisDevice(Device device) 内部。我该如何应对这个问题?

将此实例的深拷贝传递给该方法是否是一个解决方案?考虑到更新频率高,这是一个好吗?

最佳答案

如果理解正确,您需要使用同步语句:

void processThisDevice(Device device) {
synchronized(device){
... // code what you want to do
}
}

在 processThisDevice 方法完成之前,任何其他进程都无法更改设备实例并等待结束同步块(synchronized block)。这是你想要的吗?

关于java - 当对象被另一种方法处理时管理对象属性的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34213269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com