如下例子,因为实时性要求高,需要断检查 val 是否存在值,val 的值会在其它线程中改变,用 while 循环会导致 CPU 飞起,加了 time.sleep 实时性又不够强,所以想问下,还有什么方式可以达到我想要的效果呢?
val = None
while True:
if val:
print('ok, you got val')
else:
time.sleep(0.1)
1
ferock PRO 思路感觉就歪了
|
2
Jooooooooo Apr 10, 2020
其它地方变更了之后通知
|
3
tomczhen Apr 10, 2020 via Android
典型 xy 问题。
|
4
Te11UA OP |
5
hallDrawnel Apr 10, 2020
建议使用条件变量
|
6
Jooooooooo Apr 10, 2020
@Te11UA 提供一个方法只要有变更就调用啊
|
7
SleipniR Apr 10, 2020
Queue 不香吗?
|
8
pmispig Apr 10, 2020
写一个改值函数,改值必须用这个函数,在这个函数里通知你。
不然它随便改了,你要监听,那基本上就是歪路 |
9
Te11UA OP |
10
liulei281 Apr 10, 2020
threading.Condition
|
11
em70 Apr 10, 2020
异步应该用回调函数啊
|
12
oahebky Apr 10, 2020
“val 的值会在其它线程中改变”
去了解一下 python 的 event 。 |
13
ClericPy Apr 10, 2020
我在实际使用中用的是内置库里那个 Future......
|