recvfrom是不是线程安全的?

羽飞 2011-07-29 05:03:01
我在几个线程上同时对一个套接字进行recvfrom操作,会不会有什么问题?
...全文
246 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw_editer 2011-09-20
  • 打赏
  • 举报
回复
可以用线程互斥锁,或者信号量,套接字不一样也行!
羽飞 2011-07-30
  • 打赏
  • 举报
回复
为什么会被瓜分,UDP不都是一个一个的消息包吗
[Quote=引用 3 楼 justkk 的回复:]

如果多个线程同时调用recvfrom,数据可能被瓜分
[/Quote]
羽飞 2011-07-30
  • 打赏
  • 举报
回复
这种方法很好,但是我想知道具体情况,而不是安全与否
[Quote=引用 2 楼 jackyjkchen 的回复:]

关键是套接字,socket是不是线程安全要看实现,保险的做法是加锁或者不同的线程不要共用套接字
[/Quote]
羽飞 2011-07-30
  • 打赏
  • 举报
回复
套接字不是阻塞的

[Quote=引用 1 楼 u_buntu 的回复:]

应该会有问题的,虽说是阻塞的,但多线程同时读取,到底是哪个线程读取到了呢?

建议用线程同步
-----------------------------------

更多技术文章敬请关注:武汉华嵌-嵌入式培训专家,国内领先的嵌入式服务机构,

http://www.embedhq.org
[/Quote]
justkk 2011-07-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hnwyllmm 的回复:]
为什么会被瓜分,UDP不都是一个一个的消息包吗

引用 3 楼 justkk 的回复:

如果多个线程同时调用recvfrom,数据可能被瓜分
[/Quote]
哦,是UDP,那应该没事。但是我也不能确定
昵称很不好取 2011-07-29
  • 打赏
  • 举报
回复
额,数据都不知道被谁收走了
justkk 2011-07-29
  • 打赏
  • 举报
回复
如果多个线程同时调用recvfrom,数据可能被瓜分
jackyjkchen 2011-07-29
  • 打赏
  • 举报
回复
关键是套接字,socket是不是线程安全要看实现,保险的做法是加锁或者不同的线程不要共用套接字
u_buntu 2011-07-29
  • 打赏
  • 举报
回复
应该会有问题的,虽说是阻塞的,但多线程同时读取,到底是哪个线程读取到了呢?

建议用线程同步
-----------------------------------

更多技术文章敬请关注:武汉华嵌-嵌入式培训专家,国内领先的嵌入式服务机构,

http://www.embedhq.org

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧