阅读:1096回复:1
VC多线程冲突的问题?
写了个程序,使用两个线程分别处理文件和数据。
数据线程通过公共变量向文件线程传递文件名,同时,文件线程也通过一组公共变量向数据线程发送相关状态信息。两个线程使用CEvent对象进行同步。 现在,程序运行一段时间就会出现某某内存不能读写的故障,虽然两个线程使用事件对象进行了同步,但程序里对公共变量的访问时间还是不可测的,有可能会出现两个线程\"同时\"访问同一变量。 问,两个线程如果同时对同一变量进行读写,有没有可能造成内存不能读写的故障。我所看到的资料都说这种情况只会产生程序逻辑上的错误,不至于会出现系统错误的。 谢谢。 |
|
|
沙发#
发布于:2003-06-08 16:59
把“公共变量”用临界区(Critical Sections)保护起来。
|
|