滴水 2.27 --事件

image
第二个参数 false会把已通知改为未通知 true 需要自己动手改为已通知
第二个参数 false会把已通知改为未通知

点击查看代码
	4、线程控制实验:只读形式的线程控制				
					
	HANDLE g_hEvent;				
					
	HWND hEdit1;				
	HWND hEdit2;				
	HWND hEdit3;				
	HWND hEdit4;				
	HANDLE hThread1;				
	HANDLE hThread2;				
	HANDLE hThread3;				
	HANDLE hThread4;				
					
	DWORD WINAPI ThreadProc1(LPVOID lpParameter)				
	{				
		//创建事件			
		//默认安全属性  手动设置未通知状态(TRUE)  初始状态未通知 没有名字 			
		g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);			
		HANDLE hThread[3];			
		//创建3个线程			
		hThread[0] = ::CreateThread(NULL, 0, ThreadProc2, NULL, 0, NULL);			
		hThread[1] = ::CreateThread(NULL, 0, ThreadProc3, NULL, 0, NULL);			
		hThread[2] = ::CreateThread(NULL, 0, ThreadProc4, NULL, 0, NULL);			
					
		//设置文本框的值			
		SetWindowText(hEdit1,"1000");			
					
		//设置事件为已通知			
		SetEvent(g_hEvent);			
					
		//等待线程结束 销毁内核对象			
		WaitForMultipleObjects(3, hThread, TRUE, INFINITE);  			
		CloseHandle(hThread[0]);  			
		CloseHandle(hThread[1]);			
		CloseHandle(hThread[2]);			
		CloseHandle(g_hEvent);  			
					
		return 0;			
	}				
					
	DWORD WINAPI ThreadProc2(LPVOID lpParameter)				
	{				
		TCHAR szBuffer[10] = {0};			
					
		//当事件变成已通知时 			
		WaitForSingleObject(g_hEvent, INFINITE);			
					
		//读取内容			
		GetWindowText(hEdit1,szBuffer,10);			
					
		SetWindowText(hEdit2,szBuffer);			
					
		return 0;			
	}				
	DWORD WINAPI ThreadProc3(LPVOID lpParameter)				
	{				
		TCHAR szBuffer[10] = {0};			
					
		//当事件变成已通知时 			
		WaitForSingleObject(g_hEvent, INFINITE);			
					
		//读取内容			
		GetWindowText(hEdit1,szBuffer,10);			
					
		SetWindowText(hEdit3,szBuffer);			
					
		return 0;			
	}				
	DWORD WINAPI ThreadProc4(LPVOID lpParameter)				
	{				
		TCHAR szBuffer[10] = {0};			
					
		//当事件变成已通知时 			
		WaitForSingleObject(g_hEvent, INFINITE);			
					
		//读取内容			
		GetWindowText(hEdit1,szBuffer,10);			
					
		SetWindowText(hEdit4,szBuffer);			
					
		return 0;			
	}				


互斥,科学词语,拼音是hù chì,意思是指互相排斥的行为或事例。 事件A与事件B在任何一次试验中都不会同时发生,则称事件A与事件B互斥。事件A和B的交集为空,A与B就是互斥事件,也叫互不相容事件,也可叙述为不可能同时发生的事件。如A∩B为不可能事件(A∩B=Φ),那么称事件A与事件B互斥,其含义是事件A与事件B在任何一次试验中不会同时发生。 互斥事件定义中事件A与事件B不可能同时发生是指若事件A发生,事件B就不发生或者事件B发生,事件A就不发生。例如:粉笔盒里有3支红粉笔,2支绿粉笔,1支黄粉笔。现从中任取1支,记事件A为取得红粉笔,记事件B为取得绿粉笔,则A与B不能同时发生,即A与B是互斥事件。

线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。

线程互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

互斥
image

image

posted @ 2023-02-27 14:01  逆向狗  阅读(48)  评论(0)    收藏  举报