如果你在两个不同的线程中调用read
(或write
,或两者),在同一个文件描述符上(假设我们对本地文件感兴趣,它是一个套接字文件描述符),而不显式使用同步机制,会发生什么?
Read 和 Write 是系统调用,因此,在单核 CPU 上,“同时”执行两次读取可能是不幸的。但是多核...
linux内核会做什么?
让我们更笼统一点:其他内核(如 BSD)的行为是否总是相同的?
编辑:根据关闭文档,我们应该确保文件描述符没有被其他线程中的系统调用使用。所以它接缝在关闭文件描述符之前需要显式同步(因此,如果可能调用它的线程仍在运行,也围绕读/写)。