Python GIL 对多线程有什么限制? (举例)

What limitations does the Python GIL place on multithreading? (with example)

我无法弄清楚这一点。

我有一个程序,比如说,有三个线程 - A、B 和 C。

C 是一个 'hardware manager',A 和 B 使用 APScheduler 执行自己的任务进行调度,并作为其例程的一部分,向硬件管理器线程发出请求。

如果我在线程C中使用time.sleep()(有时需要等待某些硬件相关的事情完成),是否可以调用线程C上的其他方法?

例如。 'A' 要求 'C' 打开为调制解调器供电的继电器。该方法包含一个 sleep(),因此一旦它 returns,'A' 就可以预期存在网络连接。 不过,在此期间,'B' 可能会请求从 ADC 读取电池电压。 我是否应该期望 'B' 被卡住等待对 return 的第一个方法调用?

好的,所以实际上,我认为答案是 time.sleep() 将屈服于其他等待线程。

也许其他限制或问题会及时浮出水面,但在现阶段,性能不是问题,只有并发性。