VC/MFC
VB
Delphi
C++ Builder
C/C++
Java
.NET技术
MS-SQL Server
PowerBuilder
DB2
Oracle
Web 开发
Linux/Unix社区
硬件/嵌入开发
移动平台
您的位置:
程序门
->
vc/mfc
-> 进程/线程/dll
关于多个线程共用同一list的问题
[
收藏此页
] [
打印本页
]选择字色:
默认
灰色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
背景色:
默认
黑色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
字体:[
大
][
中
][
小
]
关于多个线程共用同一list的问题
发表于:
2007-07-12 10:30:50
楼主
现有一个很大的xml数据文件,我打算在程序启动时就开启一个线程,将此文件里所有的数据都装入一个list(stl 里的list)里边,然后会有若干个线程访问list获取数据,同时启动时开启的那个线程定时监控文件是否被更改了,如果更改了就重新load.
我现在想的是监控线程在更新list时加锁,其它访问线程不加锁,这样可以最快速度读取数据.但是我担心在监控线程更新list时,会与其它线程有冲突.
请给出一个最好的解决方案.
发表于:
2007-07-12 10:37:48
1
楼 得分:
0
up
发表于:
2007-07-12 12:38:37
2
楼 得分:
0
昏,使用内核对象让监控线程锁定操作了,那么其它想不锁定都难。
发表于:
2007-07-12 12:40:10
3
楼 得分:
0
其它线程上就要在必要的时候进行同步,禁止load的时候进行访问。那都在被迫的去锁定了
发表于:
2007-07-12 13:14:08
4
楼 得分:
0
sendmessage可以解决问题
加一个updatelistdata消息,list控件显示刷新,每个线程如果有数据insert list,则向list窗体sendmessage(hwnd,updatelistdata.....);
发表于:
2007-07-12 15:04:11
5
楼 得分:
0
我认为如果锁定这个list是可以接受的话,就那样做就可以了.但如果你一定要追求最好的性能的话,你可以参考windows的完成端口的原理来做:
1.将外部多线程对该list的读写请求放到一个异步队列中.
2.外部的多线程监视异步队列的返回结果队列.
3.异步队列里面来组织对list的读写并且按要求将结果返回到结果队列中.在异步队列里面,你完全可以只需要极少的锁来减少冲突.比如:先处理所有的读后再去处理写,当发现队列里面根本没写的请求时完全不用去锁定任何东西大家自由的读;当要写时若发现有读的请求则先处理完读的请求再写.
以上描述可能不太清楚.但windows的i/o完成端口模型绝对是一个性能极高的解决方案.楼主可以参考之.
下一篇:
即时通讯,类似qq,聊天时可以传文件,多线程问题
上一篇:
【hookapi的方法hook不了msvcrt.dll里的函数】
相关文章
新手求教:几个关于视频捕捉的问题,请高手指点一...
【招聘】上海维西网络科技有限公司(verycd)
求 类似windows画图软件 的源码,有相关提示...
请问谁有visual c++6。0技术内幕(第五版)...
cmshflexgrid控件如何动态响应数据源的改变?
请问如何激活窗口
求助:图象倾斜怎么处理???
那位大虾有jpeg->bmp的源码,
如何用mfc做复合控件
请教下内存读取的问题
在另一sdh_devicedlg.cpp如何清除drawcolorlight...
向大家介绍一款免费轻松的网页网络游戏,直接在网...
p2p新手求助
获取页面提交的文本信息
大家帮帮忙,程序员联合开发网会员请进!
第三方系统,比如记事本(windows自己的)和phot...
tiff图象编码解码,急
郁闷散分了!!!
这个xml如何解析?
flashcall事件问题
其他资讯
为什么改变窗口大小后 ,最小化,还原,关闭...
我把winapp theapp变量放在lib项目中,主项目...
mfc 通过adodc控件连接odbc mysql数据...
如何看别人的源代码呀?
请问打印机如何模拟实现?
串口频繁读写数百/千次之后任何读写操作均失败.....
在大巴上公司的笔记本被偷了
如何监视自己创建的进程结束,并进行相关处理
我想实现从txt文件读取数据写入listbox的机能,我...
lpstr 的疑问?
这行语句怎理解?
************简单问题来帮忙啊!有关文本框的问题...
ini 很简单的问题,不算问题的问题
如何在bho中如何获得ie滚动条状态。
shfileoperation奇怪死了
如何在堆栈中创建对话框类的一个实例?
msdn安装问题?
怎样终止线程?
一段自绘按钮的代码,为什么会有内存泄露?
vc讨论群(qq),群号41356711,欢迎加入
快速检索
分类导航标签a
Web 开发Java
JavaEclipse
WebSphereServer
JavaIDEA
其他数据库开发其他数据库
移动平台其他移动相关
硬件使用交换及路由技术
企业开发中间件技术
移动平台开发平台
其他数据库开发Sybase
VC/MFCHTML/XML
Web 开发非技术区
PowerBuilder项目管理
多媒体/设计/Flash/Silverlight 开发网页设计(Dreamweaver等)
《开发高手》杂志基本信息
最新资讯
linux于windows系统中的程序共享问题?
出错了!大家帮帮忙呀!!急
如何用vb把足彩中的复式全部展开变成单式?
keybd_event和ascii 的问题
qq的非正常现象,估计没人跟我一样!
请问一个格式化输出问题
询问一个非常简单的数据库设计问题
帮助!!!
这个程序哪里错了???
[讨论]动态更换布局和css问题.类似oblog
跪求经典问题 解法
如何通过ie全屏显示
sf
ie7.0弹网页
¦m¦ 第八贴 学习url改写和...
本人学习第一个java程序出错,麻烦大虾帮我看看那...
求助:用atl写dll,调用其它ocx遇到问题
申请c#版与非技术版版主,望大家支持哦~
请问有办法读写未知结构的文件吗?
在线等:查询排序语句理解!
急,请问一个sql的not null的问题?
myeclipse连接源码………顶者有分
请问怎样动态添加和减少文本框
关于sql数据库的一个问题
初学php的几个问题,望请赐教
用cbuttonst出现了内存泄漏,谁有稳定的的版本呢...
这个就是不知道问题出在什么地方 师傅解决一...
请高手帮忙!
vs2005没有工程文件吗???
windows应用程序如何让一个窗体置前(在线等待)
读文件,取出后发现少了一个字节,这是怎么回事?...
实现是什么意思?
请教一些关于yui的问题
如何改变datagridview column header&...
找人开发小型票据管理系统
setwindowtext设置对话框caption怎么不显示
急:客户端上传图片路径的问题
问一个网页传值的问题,请赐教!
疑惑的分页问题:为什么sql语句not in ...
jsp重复登陆的问题
热门点击
小弟有c#基础,想自学asp.net,自认为资质可以。...
请问,如何配置oracle 10g transparen...
最最基础的问题,icollection 相关的概念问...
select(sql)带参数的方法
求救:通过sqlcommandbuilder对象修改数据库记录...
如何手动把一个项目部署到tomcat上
怎么打开eclips左边提示错误的红色叉号啊~~~在...
.net 做的c/s应用程序需要装freamwork吗
在线等啊!!
希望有linux爱好者来群35380416指导,学习,进步...
如何修改ttl
专业的pb论坛
求购《excel2000中文版函数图书馆》
浏览页面显示“connection : close”,...
求一简单的sql语句
各位高手们,请教一下,在模版列中添加一个自定义控...
jsp中子窗体如何访问父窗体的函数
如何在代码中设置asp.net的验证控件
enum(switch)的问题!
设置isa之后,解决必须要在客户机internet选项里...
fastreport控件的对准问题
关于黑别人的的网站 怎么解决以下问题?????...
电子书制作软件思路
关于treeview复选的问题
关于拖放放大缩小问题!急!!
求一个关于考勤的sql语句
this server is temporarily&nbs...
寻找有实力黑客合作,_技术成就商务
求助:局域网问题
对word模板数据填充后,如何把文件流直接输出到客...
伪静态分页问题
请教一条 sql 语句实现
如何使用java连接sql server 2005
关于 完成端口的问题
[讨论]关于cfile::readhuge、read读取文本文档的...
世界500强公司急聘c/c++开发工程师
windows窗口刷新问题,急!!!
请帮我看看这个问题啊!
有关数独计算问题
vb.net区的一个问题:readonly改变时的背景色100...