min*_*ang 14 c c++ sockets networking multithreading
我正在使用Linux和Win32套接字API.在我的程序中,多个线程共享套接字句柄.特别是,多个线程send
使用共享套接字句柄(即,相同的端口)进行调用.在这种情况下,我是否必须锁定线程安全?我无法找到答案.我可以做一个测试,但想听听你的经历.
编辑:我知道通过套接字发送数据根本不是原子操作.当然,我们必须使用互斥锁来保证线程安全.但是,我想知道系统API是否可以拥有自己的内部锁.如果是这样,我们可以省略自己的锁定.
这个问题也适用于fprintf
功能.我想知道这样的系统API会有自己的锁.根据我的经验,fprintf
从多个线程调用并没有杀死我的程序,尽管文件或stdout上有比赛(即输出不一致或不可预测,但程序没有崩溃),暗示fprintf
有一个锁来保护他们的内部数据结构.