如何检查哪个线程正在 Java 中执行代码?
2022-09-03 03:33:18
我有一个多线程Java程序,其中包含一堆关于线程的规则:例如,类A中的代码只能从UI线程调用;类 B 中的 3 个方法只能从网络线程等调用。
关于如何对这些规则被遵循的断言或其他代码检查有任何建议吗?我想做相当于测试“不变量”,以防止线程使用上的编码错误。
我有一个多线程Java程序,其中包含一堆关于线程的规则:例如,类A中的代码只能从UI线程调用;类 B 中的 3 个方法只能从网络线程等调用。
关于如何对这些规则被遵循的断言或其他代码检查有任何建议吗?我想做相当于测试“不变量”,以防止线程使用上的编码错误。
Thread.currentThread().getName()
除了 adamfisk 的出色建议之外,还有一种方便的方法专门用于测试当前线程是否为 EDT 线程:
EventQueue.isDispatchThread()