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_1
或Method_2
触发?
换句话说,如果Method_1
在Method_2
之前执行,如果Method_3
仍然是运行,Method_2
将跳到触发Method_3
。或者,如果Method_1
在Method_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 中的更新变量以避免任何线程触发它。
希望对你有帮助
我正在研究 android。请帮忙提供任何建议。 我有 3 个方法(线程)。
Method_1 { trigger Method_3; ...}
Method_2 { trigger Method_3; ...}
Method_3 { ... }
如何确保Method_3
只能被Method_1
或Method_2
触发?
换句话说,如果Method_1
在Method_2
之前执行,如果Method_3
仍然是运行,Method_2
将跳到触发Method_3
。或者,如果Method_1
在Method_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 中的更新变量以避免任何线程触发它。 希望对你有帮助