windows下多线程简单demo
来源:互联网 发布:查询python版本 编辑:程序博客网 时间:2024/05/16 07:11
#include <iostream>#include <cstdlib>#include <Windows.h>using namespace std;int tickets = 100;HANDLE hMutex;DWORD WINAPI Fun1Proc(LPVOID lpParameter){while (true){WaitForSingleObject(hMutex, INFINITE); //请求互斥量访问权if (tickets > 0){Sleep(10);cout << "Thread 1 sell ticket : "<<tickets--<<endl;}else{break; }ReleaseMutex(hMutex);//释放}return 0;}DWORD WINAPI Fun2Proc(LPVOID lpParameter){while (true){WaitForSingleObject(hMutex, INFINITE);if (tickets > 0){Sleep(10);cout << "Thread 2 sell ticket : "<<tickets--<<endl;}else{break;}ReleaseMutex(hMutex);}return 0;}//创建两个线程,线程之间通过创建的互斥量来互斥int main(){/*第一个参数同样是安全结构,默认是NULL不能继承句柄;第二个参数为FALSE时创建Mutex时不指定所有权,若为TRUE则指定为当前的创建线程ID为所有者,其他线程访问需要先ReleaseMutex;第三个参数用于设置Mutex名,为NULL时表示是匿名互斥量*/hMutex = CreateMutex(NULL, FALSE, NULL);/*-1-第一个参数是安全属性结构,主要控制该线程句柄是否可为进程的子进程继承使用,默认使用NULL时表示不能继承;若想继承线程句柄,则需要设置该结构体,将结构体的bInheritHandle成员初始化为TRUE;-2-cbStack表示的线程初始栈的大小,若使用0则表示采用默认大小初始化;-3-lpStartAddr表示线程开始的位置,即线程要执行的函数代码,这点有点类似于回调函数的使用;-4-lpvThreadParam用来接收线程过程函数的参数,不需要时可以设置为NULL;-5-fdwCreate表示创建线程时的标志,CREATE_SUSPENDED表示线程创建后挂起暂不执行,必须调用ResumeThread才可以执行,0表示线程创建之后立即执行-6-lpIDThread用来保存线程的ID;*/HANDLE hThread_1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);//创建线程1HANDLE hThread_2 = CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);//创建线程2CloseHandle(hThread_1);CloseHandle(hThread_2);system("pause");return 0;}
原文链接
http://blog.chinaunix.net/uid-26275986-id-3886498.html
阅读全文
0 0
- windows下多线程简单demo
- windows下C语言多线程编程Demo
- 多线程技术----最简单的demo开始之windows版
- C++ 多线程简单demo
- java多线程简单demo
- C#简单多线程Demo
- java多线程简单demo
- python 多线程简单demo
- windows下多线程互斥量控制简单例子
- windows下的多线程简单使用
- Android简单多线程下载Demo
- JAVA多线程死锁简单Demo
- Java多线程下压缩文件demo
- 一个Linux下多线程Demo
- Windows下C++多线程同步与互斥简单运用
- Windows下C++多线程同步与互斥简单…
- Windows下C++多线程同步与互斥简单运用
- Windows下C++多线程同步与互斥简单运用
- 应广大群友的强烈要求
- 牛顿迭代法求平方根
- 正方形
- Spring 简单介绍
- Thrift
- windows下多线程简单demo
- USACO-Section2.3 prefix[DP]
- SSH三大框架整合步骤
- 对象的内存布局
- java中Scanner类nextLine()、next()、hasNext()等总结
- 反转单词顺序列
- EventBus3.0(一)之使用
- 集合框架
- JavaScript学习笔记: 局部变量和全局变量