设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
help!关于多个线程向同一文件写数据。
返回列表
查看:
1370
|
回复:
8
help!关于多个线程向同一文件写数据。
[复制链接]
puma1800
puma1800
当前离线
积分
45
IP卡
狗仔卡
发表于 2008-3-2 17:12:33
|
显示全部楼层
|
阅读模式
源文件有10帧数据,用pthread_create创建5个线程,并且第i个线程处理第i帧和第i+5帧,i=0,1,2,3,4.每帧的处理时间不同。
另外需要将每帧的处理结果写入目标文件,即先写入第0帧的处理结果,接着第1帧的结果.......,
我的问题是:如何确保每帧处理结果按上述次序写入目标文件?
注:处理每帧所需的时间不同,而且每帧处理结果的数据大小也不同。
谢谢!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
kingthunder
kingthunder
当前离线
积分
49
IP卡
狗仔卡
发表于 2008-3-2 22:51:38
|
显示全部楼层
你要保证时序,那么只有同步运行,就是说2等1,3等2.。。。而你又用多线程,这样有意义么?
多线程的场合是什么呢?想想吧,不是什么都用多线程都好的。至少会增加系统和应用程序负担。
回复
支持
反对
使用道具
举报
显身卡
puma1800
puma1800
当前离线
积分
45
IP卡
狗仔卡
楼主
|
发表于 2008-3-2 23:10:12
|
显示全部楼层
忘了说明,之所以用多线程,是要把创建的每个线程分别绑定到多核CPU的其中之一上。
回复
支持
反对
使用道具
举报
显身卡
khc
khc
当前离线
积分
116
IP卡
狗仔卡
发表于 2008-3-3 02:18:21
|
显示全部楼层
第5綫程 pthread_join 第4綫程,第4綫程 pthread_join 第3綫程,如此類推
回复
支持
反对
使用道具
举报
显身卡
x11
x11
当前离线
积分
2823
IP卡
狗仔卡
发表于 2008-3-3 09:57:31
|
显示全部楼层
处理完了先在内存里缓存,最后处理完的线程负责写
回复
支持
反对
使用道具
举报
显身卡
榆木脑袋
榆木脑袋
当前离线
积分
3
IP卡
狗仔卡
发表于 2008-3-3 11:06:12
|
显示全部楼层
这是线程同步的问题,可以用设定标记并加上互斥量的配合的方法解决,需要5个互斥量配5个标记。Window编程中有个CriticalSection类,其提供的方法可以满足你的要求,建议lz参考仿照实现linux下功能。
回复
支持
反对
使用道具
举报
显身卡
maqianli
maqianli
当前离线
积分
54
IP卡
狗仔卡
发表于 2008-3-6 13:32:51
|
显示全部楼层
估计性能不如单线程来的快
回复
支持
反对
使用道具
举报
显身卡
Lilix
Lilix
当前离线
积分
4
IP卡
狗仔卡
发表于 2008-3-10 15:32:56
|
显示全部楼层
建议采用x11的方案,如果处理结果数据量大的话可以采用临时文件缓存。
把问题考虑成数据处理、结果整合两个处理过程;可以另开一个线程负责结果整合,只需要在五个数据处理线程和结果整合线程之间进行同步
回复
支持
反对
使用道具
举报
显身卡
puma1800
puma1800
当前离线
积分
45
IP卡
狗仔卡
楼主
|
发表于 2008-3-11 14:09:31
|
显示全部楼层
谢谢楼上各位!我先采用临时缓存试试看。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表