zoukankan      html  css  js  c++  java
  • C++使用Windows API CreateMutex函数多线程编程

    C++中也可以使用Windows 系统中对应的API函数进行多线程编程。使用CreateThread函数创建线程,并且可以通过CreateMutex创建一个互斥量实现线程间数据的同步:


    #include <iostream>
    #include <Windows.h>
    
    using namespace std;
    
    HANDLE hMutex = NULL; //互斥量
    
    DWORD WINAPI thread01(LPVOID lvParamter)
    {
    	for (int i = 0; i < 10; i++)
    	{
    		WaitForSingleObject(hMutex, INFINITE); //互斥锁
    		cout << "Thread 01 is working!" << endl;
    		ReleaseMutex(hMutex); //释放互斥锁
    	}
    	return 0;
    }
    
    DWORD WINAPI thread02(LPVOID lvParamter)
    {
    	for (int i = 0; i < 10; i++)
    	{
    		WaitForSingleObject(hMutex, INFINITE); //互斥锁
    		cout << "Thread 02 is working!" << endl;
    		ReleaseMutex(hMutex); //释放互斥锁
    	}
    	return 0;
    }
    
    
    int main()
    {
    	hMutex = CreateMutex(NULL, FALSE, (LPCWSTR)"Test"); //创建互斥量
    	HANDLE hThread = CreateThread(NULL, 0, thread01, NULL, 0, NULL);  //创建线程01
    	hThread = CreateThread(NULL, 0, thread02, NULL, 0, NULL);     //创建线程01
    	CloseHandle(hThread); //关闭句柄
    	system("pause");
    	return 0;
    }


    输出:


  • 相关阅读:
    box-sizing
    js词法作用域
    焦点轮播图
    绑定事件统一方法
    自动展示收起广告功能
    使用js实现瀑布流
    回到顶部效果
    电商网站的放大镜功能
    CSS清除浮动
    CSS的水平居中和垂直居中方式
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411888.html
Copyright © 2011-2022 走看看