在cPython(默认的Python实现)中,线程切换发生的频率是多少?这不是关于使用多个核心的问题;我知道GIL(全局解释器锁)的存在,并且意识到一次只能运行一个线程。
我曾经遇到过几种情况,即我有两条日志信息连续出现,第一条日志信息将被发出,但第二条在几秒钟后才被发出。可能是因为Python在两个日志语句之间决定切换线程。这使我相信Python每隔几秒钟就会在线程之间切换,这比我预期的要慢得多。这是否正确?
我曾经遇到过几种情况,即我有两条日志信息连续出现,第一条日志信息将被发出,但第二条在几秒钟后才被发出。可能是因为Python在两个日志语句之间决定切换线程。这使我相信Python每隔几秒钟就会在线程之间切换,这比我预期的要慢得多。这是否正确?
sys.setcheckinterval
的文档。 - Lukas Graf