LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1624|回复: 5

多线程调用recvfrom对同一个sockfd进行操作不用线程同步会导致接收数据丢失吗?

[复制链接]
发表于 2006-12-4 14:37:12 | 显示全部楼层 |阅读模式
多线程调用recvfrom对同一个sockfd进行操作不用线程同步会导致接收数据丢失吗?
发表于 2006-12-4 15:59:15 | 显示全部楼层
丢失应该不会吧,总会有一个线程收到的嘛
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-4 17:28:12 | 显示全部楼层
那可能会导致什么隐患呢?
回复 支持 反对

使用道具 举报

发表于 2006-12-4 18:10:31 | 显示全部楼层
如果一个完整的数据包被分成两次发,可能就分别被两个线程收到,结果就是两个收到的都是不完整的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-4 22:17:28 | 显示全部楼层
我再问一下,两个线程同时操作同一个sockfd,一个只对sockfd调用sendto,一个只对sockfd调用recvfrom,这样的情况还需要同步机制呢?
我感觉应该不需要,因为发送有发送缓冲区,接收有接受缓冲区,都是互不干扰的;

但是又不敢太确定;
回复 支持 反对

使用道具 举报

发表于 2006-12-4 23:54:02 | 显示全部楼层
全双工的,应该不用。
不过为何不试一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表