摘要:
前面讲了临界区可以用来达到线程同步.而事件(event)与互斥(mutex)也同样可以做到.Win32 API中的线程事件HANDLE hEvent = NULL;void MainTestFun{hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);SetEvent(hEvent);char g_charArray[4];CString szResult;//下面三个线程中的任意一个访问g_charArray的时候其他线程都不能访问AfxBeginThread(FunOne,NULL); //FunOne给数组赋值全为SAfxBeginThread(FunT 阅读全文
摘要:
当多个线程同时使用相同的资源时,由于是并发执行,不能保证先后顺序.所以假如时一个公共变量被几个线程同时使用会造成该变量值的混乱.下面来举个简单例子.假如有一个字符数组变量char g_charArray[4];CString szResult;AfxBeginThread(FunOne,NULL); //FunOne给数组赋值全为SAfxBeginThread(FunTwo,NULL); //FunTwo也给数组赋值全为BAfxBeginThread(GetResult,NULL); //得到数组的值,本来期望的值为最后一次赋的值BBBB.但实际结果是不确定的,可能是SBSB,SSBB或者其它 阅读全文
摘要:
.CPP文件第一步#define WM_MySHOWDINGDU (WM_USER+100)#define WM_MySTOP (WM_USER+101)#define WM_UpLoadSucce (WM_USER +102)#define WM_UPRESULT (WM_USER + 103)#define WM_CANCELUPLOAD (WM_USER + 104)第二步;BEGIN_MESSAGE_MAP(CScreenDefineView , CFormView) ON_MESSAGE( WM_MySHOWDINGDU , Jingdutiao ) ... 阅读全文