阻塞和非阻塞

产生阻塞的场景:
读设备(dev)文件、读网络文件
tty就是显示终端设备,/dev/tty
阻塞和非阻塞
这是会读到键盘的值并写道标准输出
阻塞和非阻塞
第一个hello是自己输入的,是一直在等着,所以是阻塞
非阻塞的代码如下图所示:
阻塞和非阻塞
此时read返回-1的时候,errno会变成EAGAIN或EWOULDBLOCK,表示非阻塞状态且当前无数据;阻塞情况就是读取错误,所以两个-1的含义是不一样的
但是这样有一个问题:他一直在等,所以可以设置一个超时时间。
阻塞和非阻塞
阻塞和非阻塞
设备有数据的时候通知用户才是读数据的最优方法:select poll epoll

上一篇:pyinstaller 打包遇到问题:Python library not found: libpython3.9m.so.1.0, libpython3.9m.so, libpython3.9.so


下一篇:ASP.NET 生成随机验证码