// win32_thread_syn.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
#include "list"
#include "windows.h"
#include "process.h"
using namespace std;
/*
线程同步
1.临界区
2.信号量
3.事件对象
4.互斥量
*/
/************************************************************************/
/* 临界区 单进程内线程同步 */
/************************************************************************/
CRITICAL_SECTION g_cri; //临界区
list<int> g_list2;
unsigned int __stdcall threadRead(LPVOID param)
{
while(true)
{
EnterCriticalSection(&g_cri);
for (list<int>::iterator it = g_list2.begin(); it != g_list2.end();it++)
{
cout << "元素为:"<<*it << endl;
}
LeaveCriticalSection(&g_cri);
Sleep(100);
}
return 0;
}
unsigned int __stdcall threadWrite(LPVOID param)
{
srand(GetTickCount(
win32下多线程同步方式之临界区,互斥量,事件对象,信号量
最新推荐文章于 2024-07-07 15:57:29 发布
本文通过实例代码详细介绍了Windows环境下,如何使用临界区、互斥量、事件对象和信号量实现多线程同步,包括它们的创建、使用和销毁,以确保线程安全地访问共享资源。
摘要由CSDN通过智能技术生成