【发布时间】:2010-01-27 22:04:57
【问题描述】:
在 Linux 中,如果创建了两个线程并且它们都在运行,当其中一个调用 recv() 或任何在没有数据可用时阻塞的 IO 系统调用时,整个进程会发生什么?
其他线程也会阻塞吗?我想这取决于线程是如何实现的。如果线程库在用户空间并且内核完全不知道进程中的线程,那么进程是调度实体,因此两个线程都被阻塞了。
此外,如果其他线程没有因此而阻塞,那么它是否可以通过同一个套接字将send() 数据阻塞recv 线程?双面打印?
有什么想法吗?
【问题讨论】:
标签: c multithreading