免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1633 | 回复: 5
打印 上一主题 下一主题

线程的同步问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-29 21:19 |只看该作者 |倒序浏览
第一个线程:
pthread_mutex_lock
memcpy-->buffer
pthread_cond_signal
pthread_mutex_unlock
第二个线程:
pthread_mutex_lock
pthread_cond_wait
pthread_mutex_unlock
buffer-->write

第一个线程将一帧图片数据拷贝到buffer缓冲区中
第二个线程将数据通过网络发送出去

问题:有没有可能第二个线程正在发送数据的时候  第一个线程将数据覆盖掉 造成客户端接收到的数据不对
如果有可能  有什么办法解决?  网络套接口是阻塞的

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
2 [报告]
发表于 2006-12-29 21:41 |只看该作者
不能,因为你用了pthread_mutex_lock

论坛徽章:
0
3 [报告]
发表于 2006-12-29 21:56 |只看该作者
但是我write没锁定啊
|

论坛徽章:
0
4 [报告]
发表于 2006-12-30 00:01 |只看该作者
第一个线程memcpy-->buffer做完后第二个线程才可能往下执行(假定用的是同一个条件变量)
也就是说第一个线程永远会比第二个跑得快

论坛徽章:
0
5 [报告]
发表于 2006-12-30 09:26 |只看该作者
但是如果是第二个线程还没运行完  第一个线程已经循环运行了好己回呢

论坛徽章:
0
6 [报告]
发表于 2006-12-30 20:41 |只看该作者
还有没有人给点意见
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP