关于linux多线程同时对一个fd做select
2016-02-25 09:27
357 查看
多线程(多进程也是差不多的情况),select同一个fd,发现在某些情况下面,的确会有多个线程(进程)被唤醒,然后只有一个线程能够accept(stream类型的fd)或者recv(如果是diagram的fd),其它的则会在accept或recv处阻塞,当然如果把fd设成非阻塞的,则会返回一个失败。
所以多线程同时select一个fd时,还是把fd设成非阻塞的,省得麻烦。因为循环处理时,往往也顺便在没有事件发生时,顺带做一些定时器的工作,这时如果堵住了,就不是好事了,没法去处理定时器计费了。
所以多线程同时select一个fd时,还是把fd设成非阻塞的,省得麻烦。因为循环处理时,往往也顺便在没有事件发生时,顺带做一些定时器的工作,这时如果堵住了,就不是好事了,没法去处理定时器计费了。
相关文章推荐
- linux awk命令详解
- unix/linux 字节对齐补齐
- linux grep命令详解
- centos关机与重启命令详解
- Linux 内核list_head container_of
- Linux 标准库下的unistd.h
- Linux服务启动报:Address already in use 解决方法:预留端口避免占用ip_local_reserved_ports
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- Linux运维细讲第一节之文件权限
- Debian8.3安装sogoiu旗下的linux输入法,缺少fonts-droid这个包的问题。
- Linux(CentOS6) zeromq编译安装
- Java9积极解决Linux中的GTK GUI难题
- Linux下同步模式、异步模式、阻塞调用、非阻塞调用总结
- SSH连接下复制远程linux服务器文件到本地的命令
- Linux中的In命令
- Centos 7 网卡bug一例
- #Linux协议栈你学得会# 之 本机地址 vs 127.0.0.1
- centos 关机和重启命令详解
- 在win8下安装centos7报错解决
- (转)Linux的chattr与lsattr命令详解