多线程编程中全局变量的保护问题 如果可能同时修改一个全局变量的话,该怎么来限制每次只有一个进行修改?我看有个CSemaphore可以做到,但是没有看懂,不知那位能提供一个小例子? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是互斥访问 你应该用CMutexLock很简单 使用事件、临界段、互斥量、或信号量都可以,《Visual C++6.0技术内幕》P254(第12章)有简单的例子,一般讲VC的书都应该有。例如:int aaaa=0;CCriticalSection m_cs;//临界段。m_cs.Lock();aaaa=XXXX;m_cs.Unlock();可以保证访问不冲突。 楼主说的是信号量,chenjiming(还不够聪明) 说的是互斥量,两个都可以。还有其它的办法,建议楼主找本多线程设计的书看 互斥访问,这是个很普遍的常规问题,任何一本数据库,操作系统原理,Unix操作系统编程的书都讲得很详细。 如果你的全局变是个int而不是一个对象的话,用InterlockedIncrement()和InterlockedDecrement()就简单多了。互斥量与信号量等只用于对对象的同步操作,杀牛焉用屠龙刀。 【创建进程后如何限制进程权限】 请问怎样以主对话框作为容器添加其他东西 选择排序 求侯捷的多线程程序设计随书源码 串口校验位设置问题 有办法用代码对Access数据库文件进行压缩吗 请问:如何读取一个目录下的所有文件名(该目录下包含子目录) 如何將翦裁板中的圖象打印出來??? 怎么在EDIT BOX中更新时间!!??求出各位兄弟姐妹,拉兄弟一把吧!!! 请问VC++怎么把坐标轴弄在静态框上啊 请问怎样得到一个目录下所有的子目录程文件?(不用MFC) 测试
P254(第12章)有简单的例子,一般讲VC的书都应该有。例如:
int aaaa=0;
CCriticalSection m_cs;//临界段
。
m_cs.Lock();
aaaa=XXXX;
m_cs.Unlock();
可以保证访问不冲突。
任何一本数据库,操作系统原理,Unix操作系统编程的书都讲得很详细。