如果我打电话会发生什么select
来自多个线程的同一个打开的文件描述符?
这有记录在某处吗?
根据POSIX 2008select http://pubs.opengroup.org/onlinepubs/9699919799/functions/pselect.html规范,没有什么可以禁止两个线程同时调用select
同时。
可以合理地推断,如果两个线程都监视重叠的文件描述符集,并且某些公共文件描述符变得可读或可写或已诊断出错误,则两个线程最终可能会报告公共文件描述符已准备就绪。这不能得到保证;需要担心计时问题,并且它可能取决于线程的调度等。这也意味着其中一个线程可能最终无法在被告知包含要读取的数据的文件描述符上找到要读取的数据,正是因为另一个线程首先到达那里。任何给定的数据字节将仅由其中一个线程读取。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)