java/android - 如果一个线程或方法是 运行,如何保证没有其他人可以触发它?

java/android - How to guarantee if one thread or method is running, no one else can trigger it?

我正在研究 android。请帮忙提供任何建议。 我有 3 个方法(线程)。

   Method_1 { trigger Method_3; ...}
   Method_2 { trigger Method_3; ...}
   Method_3 { ... }

如何确保Method_3只能被Method_1Method_2触发? 换句话说,如果Method_1Method_2之前执行,如果Method_3仍然是运行,Method_2将跳到触发Method_3。或者,如果Method_1Method_2之前执行,如果Method_1触发的Method_3已经完成,Method_2将触发Method_3。 同样的问题,我在3个线程中怎么办...

   Thread_1 { trigger Thread_3; ...}
   Thread_2 { trigger Thread_3; ...}
   Thread_3 { ... }

因为Thread_3(Method_3)与一些全局套接字变量有关。我想保证如果这个 thread/method 是 运行,没有其他人可以触发它,因为它正在尝试连接到网络的另一端。 感谢您的帮助!

使用 class 变量保存对触发什么方法的引用。听起来您需要引用该方法和一个布尔状态标志。

您可以使用缓存来存储结果、首选项,或者使用与 Activity 分开的全局存储,例如异步线程。

如果线程是从同一个 class 管理的,您可以只使用 class 在 savedInstance 中销毁时存储的变量,然后在 onCreate 中加载它们。

将class与全局和静态变量一起使用来处理线程。如果线程 3 触发 class 中的更新变量以避免任何线程触发它。 希望对你有帮助