多线程例子

来源:互联网 发布:怎么去黑头 知乎 编辑:程序博客网 时间:2024/05/09 22:21
#include <Windows.h>  #include <iostream>  using namespace std;DWORD WINAPI Fun1(LPVOID lpParameter);DWORD WINAPI Fun2(LPVOID lpParameter);int index = 0;int tickets = 100;   //全局变量tickets用来表示销售的剩余票数  int main(){HANDLE hThread1;HANDLE hThread2;//创建线程  hThread1 = CreateThread(NULL, 0, Fun1, NULL, 0, NULL);//4个参数的意思分别为:使线程使用默认的安全性、让新线程采用与调用线程一样的栈大小、指定线程的入口函数地址、  //线程创建标记,0表示让线程一旦创立就运行、新线程的ID,不需要的话为null  hThread2 = CreateThread(NULL, 0, Fun2, NULL, 0, NULL);CloseHandle(hThread1);  //调用CloseHandle将此线程的句柄关闭,关闭句柄时,系统会递减该线程内核对象的使用计数。  CloseHandle(hThread2);Sleep(4000); //让线程暂停运行4s  system("pause");return 0;}//线程1入口函数  DWORD WINAPI Fun1(LPVOID lpParameter){while (TRUE){if (tickets > 0){Sleep(1);cout << "thread1 sell ticket : " << tickets-- << endl;}else{break;}}return 0;}//线程2的入口函数  DWORD WINAPI Fun2(LPVOID lpParameter){while (TRUE){if (tickets > 0){Sleep(1);cout << "thread2 sell ticket : " << tickets-- << endl;}else{break;}}return 0;}

0 0
原创粉丝点击