【发布时间】:2010-01-23 20:19:37
【问题描述】:
如果我打电话
Timer(.1, some_function, [some_arguments]).start()
多次,幕后究竟发生了什么?
我们问题的根源是……
我们有一个方法,本质上是:
def move(target):
force = calculateForce(target-getCurrentPosition())
if(force != 0)
setForce(force)
Timer(.1, moveCursor, [tx]).start()
else:
setForce(0)
设置力后,我们需要在一定时间后检查是否应该停止。 (此信息发往/来自不触发事件的外部物理设备。)
这个函数花费了多少时间存在奇怪的问题,而且我们在一定时间后收到“无法启动新线程”错误。
这让我相信 Timer(...) 不会重用线程,而是每次都会创建一个新线程。
结合我们使用的库不是线程安全的信念,这些错误是有道理的......
【问题讨论】:
标签: python multithreading