如何通过新线程通知主线程它已经做了什么?

时间:2014-05-13 07:01:53

标签: multithreading python-2.7 synchronization

我创建了一个新线程,它发现设备并不断更新变量(只要有变化)和设备名称,我的主线程将在UI中显示这些设备。

但是我如何通知主线程变量被更改,你应该更新UI。

主线程正在做一些事情,所以我无法阻止它。

1 个答案:

答案 0 :(得分:0)

从Python的线程模块使用条件监视器来阻止UI线程,而其他线程发现设备并通知UI线程。

condition = threading.Condition()
global update

# Update
condition.acquire()
while not update:
   condition.wait()
update = False
<Update UI>
update.release()

# Discover
condition.acquire()
update = True
<Add discovered device>
condition.notify()
condition.release()