在一个进程当中,假设类A有多个实例在多个不同的线程里面同时执行A的函数.由于多个A对象共享代码区(即多个类实例实际调用同一个函数),为了数据保证同步,就需要在定义A函数的时候写入一些同步代码.
大家能否具体举个例子来说明如果不写入这些同步代码.为什么会导致数据混乱.我希望大家能从机器内部执行机制上来分析原因。解释清楚立刻结帖.谢谢.
大家能否具体举个例子来说明如果不写入这些同步代码.为什么会导致数据混乱.我希望大家能从机器内部执行机制上来分析原因。解释清楚立刻结帖.谢谢.
解决方案 »
- 对话框listbox控件如何更新项目文本
- ****如何在自己的程序中启动“命令提示符”,并自动加入程序路径,然后回车??
- 大家帮忙看看,关于xp下inp涵数的使用
- CFileDialog的问题
- 已知HBITMAP句柄,如何获取其代表的位图的所有象素的RGB值
- 数组赋值的问题????
- 作好一个数据库软件后 移到别的机子上给怎么做?
- VC的用户界面在不同分辨率下的显示问题?
- 用VC做哪方面的编程最吃香?
- CListBox中AddString会Assersion Failed
- 我的程序无法正常退出,请问是为什么?
- 我的HelloRichedit程序中的richedit总是只能最多存放32k字符,请问如何去掉这个限制?
------copy from internet
比如: public class A {
public void ShareFun(){
Lock(); // 这里保护的是 obj
class ShareObject obj = ShareObject.CreateSingle();
UnLock();
}
}
public class TThread
{
A a;
TThread(proc proc,A pA)
{
a = pA ;
}
public Run() {
Lock();//这个加保护 只是保护了 a ,防止其他地方调用 这个 a
{
a.ShareFun();
}
UnLock();
}
} int main() {
TThread t[5];
A a[5];
for(int i=0;i<5;i++)
t[i] =new TThread(a[i]);
for(int i=0;i<5;i++)
t.Run();
}