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