是否有一种强大的方法来检测Thread.currentThread()应用程序中的Android系统UI线程是否存在?
我想在我的模型代码中放置一些断言,断言只有一个线程(例如 ui线程)访问我的状态,以确保不需要任何类型的同步.
如何知道正在运行的代码是否在主线程(UI线程)上执行?
使用Swing我使用isEventDispatchThread方法...
之前已经回答过Android,Objective C和C++,但显然不适用于Python.如何可靠地确定当前线程是否是主线程?我可以想到一些方法,其中没有一个真正让我满意,认为它可以像比较它是否容易threading.MainThread.
主线程实例化threading.py如下:
Thread.__init__(self, name="MainThread")
Run Code Online (Sandbox Code Playgroud)
所以可以做到
if threading.current_thread().name == 'MainThread'
Run Code Online (Sandbox Code Playgroud)
但是这个名字是固定的吗?我看过的其他代码检查了是否MainThread包含在线程名称的任何位置.
我可以在程序启动的那一刻存储对起始线程的引用,即当时还没有其他线程.这绝对可靠,但对于这样一个简单的查询来说太麻烦了?
这样做有更简洁的方法吗?
如果运行我的代码的线程是UI线程,那么在Android上是否有任何方法可以知道?在摇摆中,有人 SwingUtilities.isEventDispatchThread()告诉我,我是否在UI线程上,或不.Android SDK中是否有任何功能让我知道这一点?