我读通过Grok The GIL,它有大约锁定在讨论下面的语句。 只要当它睡觉没有线程持有锁,并I/O,或其他一些GIL-下垂动作,你应该使用最粗,最简单的锁定成为可能。无论如何,其他线程无法并行运行。 它刚刚讨论了抢先式多任务处理。什么能防止在你锁定时发生GIL的抢先丢弃?或者这不是这个陈述所指的?
我有一个GTK应用程序,我需要并行运行几个任务。应用程序从串口接收数据,然后根据数据,它必须在标签上显示文本并播放音频。我正在使用基于事件的串行通信,如果收到数据,则会使标志变为高电平。 在主循环中,我创建了3个无限制地运行的线程。 Thread1 to read serial data
Thread2 to display data on gtk label
Thread3 to play