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);  //创建线程01hThread = CreateThread(NULL, 0, thread02, NULL, 0, NULL);     //创建线程01CloseHandle(hThread); //关闭句柄system("pause");return 0;
}

输出:

转载于:https://www.cnblogs.com/mtcnn/p/9411888.html

C++使用Windows API CreateMutex函数多线程编程相关推荐

  1. Windows平台下的多线程编程

    线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件.信号标识及动态分配的内存等.一个进程内的所有线程使用同一个地址空间,而这些线程的执行由系统调度 ...

  2. 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程

    标 题: [原创]使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 作 者: shayi 时 间: 2015-02-12,05:19:54 链 ...

  3. 案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程。 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下:

    案例一: 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程. 首先用文本编辑器写一个C++源程序名为StackFrame.cpp ,代码如下: 1 ...

  4. Windows Api常用函数大全

    1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接  WNetAddConnection2 创建同一个网络资源的连接  WNetAddConnection3 创 ...

  5. windows下C语言多线程编程

    _beginThreadex创建多线程解读 一.需要的头文件支持 #include <process.h>         // for _beginthread() 需要的设置:Proj ...

  6. Windows 下 C/C++ 多线程编程入门参考范例

    [c-sharp] view plaincopy #include <windows.h> #include <iostream> using namespace std; D ...

  7. Windows API——TextOut()函数学习

    1.函数功能 The TextOut function writes a character string at the specified location, using the currently ...

  8. windows API 串口编程参考

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  9. 漫谈C++ Builder多线程编程技术

    漫谈C++ Builder多线程编程技术 http://tech.163.com/school · 2005-05-31 10:52:34 · 来源: 计算机与信息技术 摘 要:本文简单介绍了Wind ...

最新文章

  1. java中相同名字怎么声明,Java中,同一个类中的两个或两个以上的方法可以有同一个名字,只要他们的参数声明不同即可...
  2. 水稻微生物组时间序列分析3-冲击图展示时间序序列变化
  3. 大学最重要的七项学习
  4. 【最小费用最大流】N. April Fools' Problem (medium)
  5. java 循环依赖_java – 如何在Gradle中解决循环依赖
  6. mongodb Install the MongoDB service
  7. UEditor 百度富文本编辑器 .Net实例
  8. CString string 转换
  9. mysql中如何把两个查询结果列数不同并成一张表_MySQL
  10. mysql 正则替换 换行,MySQL中使用replace、regexp进行正则表达式替换的用法分析
  11. 软件工程 选课系统的uml类图_想成为高级程序猿,面向对象建模和UML你不应该知道?...
  12. 阿里巴巴在ITU-T成功立项数据安全相关标准
  13. 【已解决】华硕电脑关闭触摸板,安装完触摸板驱动,Fn+F9仍然无法解决问题
  14. 渗透测试-地基篇-Cobal Strike-taowu梼杌详细介绍(十九)
  15. 什么是域名,域名的购买流程是什么
  16. SOC堡垒机运维管理平台
  17. 陈旧语法密度之六——用Map消灭if-else if-else,“上帝代码”
  18. 手机端与PC端在线预览PDF
  19. 新媒体营销的模式,自媒体营销方式有哪些
  20. 20155210 2016-2017-2 《Java程序设计》第7周学习总结

热门文章

  1. 什么是多任务、进程、线程
  2. 课程表—leetcode207
  3. CFileFind 遍历目录与子目录
  4. Android代码片段:验证数据
  5. OSTimeTick()函数解析
  6. 从内核文件系统看文件读写过程
  7. c++关联容器的成员函数find的一个例子
  8. const_iterator简单介绍
  9. POSIX线程的同步
  10. java中的工厂模式_深入理解Java的三种工厂模式