1
neoblackcap 2019 年 1 月 15 日
底层 IO 接口手动释放 GIL,这个其实你看看 CPython 源代码就知道了。
|
2
ysc3839 2019 年 1 月 15 日 via Android |
3
py1991 OP @neoblackcap 惭愧,c 不会,看不懂=。=
|
4
lihongjie0209 2019 年 1 月 15 日
最简单的, Python 标准库中所有的 io 操作都记录一下, 那么你基于标准实现的其他库你可以就知道了.
实在不行, 你还可以看看操作系统是不是有什么接口可以使用 |
5
py1991 OP @ysc3839 do {
Py_BEGIN_ALLOW_THREADS ret = fcntl(fd, code, buf); Py_END_ALLOW_THREADS } while (ret == -1 && errno == EINTR && !(async_err = PyErr_CheckSignals())); 能否解释下,感觉只看懂了线程开始和结束,循环 fcntl 是否结束 |
7
cyspy 2019 年 1 月 15 日
IO 的核心部分其实是系统内核完成的,调用内核的时候放开就行了
|
8
zhichaozhang 2019 年 1 月 15 日 via iPhone
线程执行是抢占式的 是由系统来调度的
|