Python为什么要切换线程?

2024-05-29 07:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在关于线程和GIL的Python documentation中,它说:

In order to emulate concurrency of execution, the interpreter regularly tries to switch threads (see sys.setswitchinterval())

为什么要这么做?这些上下文切换似乎只会浪费时间。运行每个进程,直到它发布GIL,然后运行下一个进程,不是更快吗?在


Tags: ofthetoin进程documentationorder线程
1条回答
网友
1楼 · 发布于 2024-05-29 07:30:15

一个线程不一定有任何I/O。你可以让一个线程执行数字运算,另一个线程处理I/O。你的建议中的数字处理线程永远不会放弃GIL,所以另一个线程可以处理I/O

为了确保每个线程都能运行,默认情况下,如果线程之前因为等待I/O而没有删除GIL,那么它将在5毫秒后删除{a1}

您可以使用sys.setswitchinterval()更改此间隔。在

线程是一种简单的并发技术。要获得更有效的并发技术,请看一下^{},它使用协程提供单线程并发。在

相关问题 更多 >

    热门问题