多个txt文件,多个线程修改。如何同步? 1,多个写不同文件的线程可以同时执行。2,要避免两个或两个以上的线程同时写同一个文件。附带说明:文件的数目不确定。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加锁,弄个结构体把文件句柄和锁放一起struct{HANDLE hFile;HANDLE hMutex;}另外每个线程还要保存好文件指针 varding,具体怎么实现? 你弄个结构体,出来,互斥只有一个呀。一旦互斥了,不同文件也要等啊。线程函数内的实现,能给个代码片段吗? 假设你现在有要写入的文件10个,f1...f10,线程10个t1...t10,那么定义10个临界区c1...c10 任何一个线程tn在写入文件fn之前,获取该文件对应的锁cn.lock,该线程写完之后,调用cn.unlock。这里就要注意,在某次写的过程中,不要再去些其他的文件。比如已经c1.lock,在写f1时,再去写文件2,调用c2.lock,这样可能造成死锁的。 另外,获取临界区和释放临界区之间的代码最好用异常处理保护起来,以免某个线程获取锁出错后未释放,导致其他线程死锁。 0xc0000005写入位置0x00000000时发生访问冲突 如何在菜单中调用一个对话框。 [help] 'DWORD_PTR' 的错误 socket阻塞了还有响应吗? 如何实现在任务栏弹出淡黄色的小提示框 初学者问题,关于组件实例化 关于WebBrowser控件编程的一些问题,变量的声明无法通过编译 ExtractIcon获得EXE文件图标句柄后如何将其单独提取保存? cricheditview的小问题,分数多多! 我是VC++自学者也是初学者,问个简单的问题,谢谢众位朋友了! 请教重载CListCtrl的OnPaint自绘,如何获取需要绘制的项? 小数位后数字带下划线
{
HANDLE hFile;
HANDLE hMutex;
}另外每个线程还要保存好文件指针
一旦互斥了,不同文件也要等啊。线程函数内的实现,能给个代码片段吗?
假设你现在有要写入的文件10个,f1...f10,线程10个t1...t10,那么定义10个临界区c1...c10
任何一个线程tn在写入文件fn之前,获取该文件对应的锁cn.lock,该线程写完之后,调用cn.unlock。这里就要注意,在某次写的过程中,不要再去些其他的文件。比如已经c1.lock,在写f1时,再去写文件2,调用c2.lock,这样可能造成死锁的。
另外,获取临界区和释放临界区之间的代码最好用异常处理保护起来,以免某个线程获取锁出错后未释放,导致其他线程死锁。