select函数是否不支持多线程(不好意思,没分了,不然应该给100分的)
select函数是支持多线程的马?
我在使用TCP socket进程中有两个线程,
一个线程A对socket接收数据
先select判断是否可读,如果可读再recv
另一个线程B向同一个socket发送数据
先select判断是否可写,如果可写则send
问题出现在性能测试时,如果频繁的发送和接收数据,发送数据的线程B在select时出现一定概率的socket不可写!
这是为什么呢?
假如我对两个线程的select前后加上互斥操作,则线程B不会出现socket不可写。
是否select不支持多线程,多线程环境下使用select需要互斥保护呢?
多谢各位大侠啦!