multithreading - 如何同时在recv()和sem_wait()上等待?

标签 multithreading sockets posix semaphore

当准备好通过recv()读取数据时或信号量S发出信号时,我必须取消阻塞线程。

有什么办法吗?

最佳答案

由于在posix中没有像WaitForMultipleObjects()这样的锁,因此您只有有限的选择。

A.使用select(2)并在套接字更改事件时收到通知

B.或poll(2)并在文件描述符事件中得到通知

或C.使用某些库实现(如libevent)

关于multithreading - 如何同时在recv()和sem_wait()上等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28532309/

相关文章:

c - 使用 clock_gettime 和 struct stat.mtim 的时序偏差

c - in_addr_t inet_ntoa 等类型的地址是什么

javascript - 如何通过套接字事件停止setTimeOut?

在 C 编程中计算使用 TCP/IP 套接字连接到服务器的客户端数量

c - 在磁盘上分配文件而不清零

Java函数在执行之前返回一个值

multithreading - 使用线程以并发方式访问结构字段

java - Android Studio Java ANR 内存泄漏

c# - .NET4.0 : Thread-Safe Updating of ConcurrentDictionary<TKey, T值>

c - 使用 stat() 测试文件的可读性时,我是否需要测试 S_IRUSR、S_IRGRP 和 S_IROTH?