1
neoblackcap Jan 15, 2019
底层 IO 接口手动释放 GIL,这个其实你看看 CPython 源代码就知道了。
|
2
ysc3839 Jan 15, 2019 via Android |
3
py1991 OP @neoblackcap 惭愧,c 不会,看不懂=。=
|
4
lihongjie0209 Jan 15, 2019
最简单的, 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 Jan 15, 2019
IO 的核心部分其实是系统内核完成的,调用内核的时候放开就行了
|
8
zhichaozhang Jan 15, 2019 via iPhone
线程执行是抢占式的 是由系统来调度的
|