如何检查哪个线程正在 Java 中执行代码?

2022-09-03 03:33:18

我有一个多线程Java程序,其中包含一堆关于线程的规则:例如,类A中的代码只能从UI线程调用;类 B 中的 3 个方法只能从网络线程等调用。

关于如何对这些规则被遵循的断言或其他代码检查有任何建议吗?我想做相当于测试“不变量”,以防止线程使用上的编码错误。


答案 1

Thread.currentThread().getName()


答案 2

除了 adamfisk 的出色建议之外,还有一种方便的方法专门用于测试当前线程是否为 EDT 线程:

EventQueue.isDispatchThread()

推荐