您的位置:程序门 -> vc/mfc -> 进程/线程/dll



请教线程同步的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教线程同步的问题
发表于:2007-02-08 22:32:31 楼主
我的程序中用到了这么几个操作,首先对文件的读和写,我用了两个线程,一个是读文件线程,一个是写文件线程,另外还有一个共享的内存数据数组,但读写文件时都可能用到这个共享数组(就是将数据读入共享数组或将共享数组的一些数据存入文件中,并删除一些数据),另外在线程外也可能会修改共享数组,这种情况如何同步呢?请帮个忙,谢谢
发表于:2007-02-09 09:45:121楼 得分:0
用临界对象initializecriticalsection
等待处理
发表于:2007-02-09 09:52:092楼 得分:0
ccriticalsection   csfile;     //用于锁定文件
ccriticalsection   csdata;     //用于锁定数组

不管在哪(两个线程中或线程外),只要存取文件和数组只要加上相应锁定解锁操作就行了

csfile.lock();
//   存取文件代码
csfile.unlock();

csdata.lock();
//   存取数组代码
csdata.unlock();
发表于:2007-02-09 10:08:583楼 得分:0
封装数组,使用保护,如使用criticalsection、event等;
对数组的公有操作,如存取等都加保护。


快速检索

最新资讯
热门点击