C++多線程 例子

C++多線程 例子
2008-08-21 15:11
//這是2個線程模擬賣火車票的小程序
#include <windows.h>
#include
<iostream.h>

DWORD WINAPI Fun1Proc(LPVOID lpParameter);
//thread data
DWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread data

int index=0;
int tickets=10;
HANDLE hMutex;
void main()
{
??? HANDLE hThread1;
??? HANDLE hThread2;
???
//創建線程

??? hThread1
=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
??? hThread2
=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
??? CloseHandle(hThread1);
??? CloseHandle(hThread2);

???
//創建互斥對象
??? hMutex=CreateMutex(NULL,TRUE,"tickets");
???
if (hMutex)
??? {
???????
if (ERROR_ALREADY_EXISTS==GetLastError())
??????? {
??????????? cout
<<"only one instance can run!"<<endl;
???????????
return;
??????? }
??? }
??? WaitForSingleObject(hMutex,INFINITE);
??? ReleaseMutex(hMutex);
??? ReleaseMutex(hMutex);
???
??? Sleep(
4000);
}
//線程1的入口函數
DWORD WINAPI Fun1Proc(LPVOID lpParameter)//thread data
{
???
while (true)
??? {
??????? ReleaseMutex(hMutex);
??????? WaitForSingleObject(hMutex,INFINITE);
???????
if (tickets>0)
??????? {
??????????? Sleep(
1);
??????????? cout
<<"thread1 sell ticket :"<<tickets--<<endl;
??????? }
???????
else
???????????
break;
??????? ReleaseMutex(hMutex);
??? }

???
return 0;
}
//線程2的入口函數
DWORD WINAPI Fun2Proc(LPVOID lpParameter)//thread data
{
???
while (true)
??? {
??????? ReleaseMutex(hMutex);
??????? WaitForSingleObject(hMutex,INFINITE);
???????
if (tickets>0)
??????? {
??????????? Sleep(
1);
??????????? cout
<<"thread2 sell ticket :"<<tickets--<<endl;
??????? }
???????
else
???????????
break;
??????? ReleaseMutex(hMutex);
??? }
???
???
return 0;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255109.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255109.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255109.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2018/03/25

2019獨角獸企業重金招聘Python工程師標準>>> March 25 2018 Sunday Weather&#xff1a;cloudy 1、需求&#xff1a; a0.5 b3 ca*b 求c的值&#xff1a; [rootDasoncheng sbin]# cat a.sh #!/bin/bash a0.5 b3 cecho $a*$b |bc echo $canswer referred&#xff1a;…

統計字符串中每種字符類型的個數demo

/** 統計字符串中每中字符類型的個數&#xff0c;思路&#xff1a;* 1、鍵盤錄入一個字符串* 2、獲取到每個字符&#xff0c;遍歷字符串* for (int i 0; i < s.length(); i) {char ch s.charAt(i);* 3、判斷每個字符屬于哪種類型&#xff0c;對應的個數*/package cn.strin…

css3 圖片放大縮小閃爍效果

直接把圖片替換就可以了&#xff0c;我的圖片是透明的&#xff0c;所以body設置為黑色的&#xff0c;不不要可以去掉 <!doctype html><html lang"en"><head> <meta charset"UTF-8"> <title>css3 圖片放大縮小閃爍效果</t…

HALCON示例程序max_connection.hdev確定分割區域的最大區域數目

HALCON示例程序max_connection.hdev確定分割區域的最大區域數目 示例程序源碼&#xff08;加注釋&#xff09; read_image (Image, ‘monkey’) get_system (‘max_connection’, Information) set_system (‘max_connection’, 0) threshold (Image, Region, 128, 255) 區域…

elasticsearch分詞聚合查詢demo

2019獨角獸企業重金招聘Python工程師標準>>> 我們在通過elasticsearch查詢text類型的字段時&#xff0c;我們使用aggs進行聚合某個text類型field。這時elasticsearch會自動進行分詞將分詞后的結果進行聚合。獲取每一個分詞出現在文檔的文檔個數。注意&#xff1a;是…

軟件工程進度條-第十五周

第十五周 所花時間&#xff08;包括上課&#xff09; 23 代碼量&#xff08;行&#xff09; 1200 博客量&#xff08;篇&#xff09; 6 了解到的知識點 1、了解ListView的基本用法&#xff0c;并改變焦點觸碰事件&#xff1b; 2、理解團隊開發后進行軟件項目總結的益處…

Spring實戰第七章

一、SpringMVC配置代替方案 1自定DispatcherServlet 按照AbstractAnnotationConfigDispatcherServletInitializer的定義&#xff0c;它會創建DispatcherServlet和ContextLoaderListener。 AbstractAnnotationConfigDispatcherServletInitializer有三個方法是必須要重載的abstra…

EPSON TCP/IP 通信

EPSON SCARA機器人TCP/IP 通信時&#xff0c;涉及到的相關指令說明。 14.3 TCP/IP命令。 OpenNet //打開TCP/IP端口。 ChkNet //返回端口狀態&#xff1a;等待讀取的字節數或錯誤條件。 CloseNet //關閉TCP/IP端口。 SetNet //運行時或從命令窗口中設置通信端…

JDBC(九)DatabaseMetaData 數據庫元數據

通過java.sql.DatabaseMetaData 接口&#xff0c;我們能獲取到數據庫的列表、列等信息。 DatabaseMetaData 接口包含了許多方法&#xff0c;這里值介紹常用的。 ###獲取 DatabaseMetaData 實例對象 DatabaseMetaData databaseMetaData connection.getMetaData(); 復制代碼###獲…

C++多線程(一)

C多線程&#xff08;一&#xff09; WIN 多線程API一 簡單實例比較簡單的代碼&#xff0c;創建10個線程&#xff0c;其中使第4個線程在一創建就掛起&#xff0c;等到其他的線程執行的差不多的時候再使第4個線程恢復執行。#include <stdio.h>#include <stdlib.h>#i…

HALCON示例程序measure_ball_bond.hdev電路板焊點位置測量

HALCON示例程序measure_ball_bond.hdev電路板焊點位置測量 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_off () dev_close_window () FileName : ‘bonds/ball_bond_ccd_’ read_image (Image, FileName 1$‘02’) dev_open_window_fit_imag…

rank()over 函數的使用

1. over()是分析函數&#xff0c;可以和rank()函數配合使用&#xff0c;也可以和其他函數配合使用。取每個學科排名前三的分數&#xff0c;sql語句如下&#xff1a; select * from (select rank() over(partition by subject order by mark desc) rk,S.* from S) T where T.rk&…

天梯賽2016-L2

L2-001. 緊急救援 作為一個城市的應急救援隊伍的負責人&#xff0c;你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。每個城市的救援隊數量和每一條連接兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助電話給你的時候&#xff0c;你…

伺服系統控制網絡的重要性! 現場總線的重要性! SSCNET運動控制系統與發展趨勢

引言&#xff1a;在2010年的時候&#xff0c;在北京的一個數控公司工作。產品采用的是通過運動控制卡發脈沖的方式&#xff0c;控制機床的X、Y、Z軸進行加工。 機床在加工產品的時候&#xff0c;一直存在著精度的問題&#xff0c;例如DMG的機床可以達到0.01的加工精度&#x…

apache配置

wamp環境安裝需要VC運行庫的支持 apache如果需要外網訪問&#xff0c;在其配置文件中尋找127.0.0.1然后替換為all 外網訪問需要關閉防火墻&#xff1f;轉載于:https://www.cnblogs.com/gremlin/p/5581486.html

TCP/IP 通信示例

TCP/IP 通信示例 Global String ReadData_P_All$, ReadData_P$(10), data$ Global Preserve Double x Global Integer foundnumber_PFunction TCPServerSetNet #201, "192.168.0.1", 4000, CRLF, NONE, 0OpenNet #201 As ClientWaitNet #201Print "TCP Connect…

MySQL分庫分表總結參考

單庫單表 單庫單表是最常見的數據庫設計&#xff0c;例如&#xff0c;有一張用戶(user)表放在數據庫db中&#xff0c;所有的用戶都可以在db庫中的user表中查到。 單庫多表 隨著用戶數量的增加&#xff0c;user表的數據量會越來越大&#xff0c;當數據量達到一定程度的時候對u…

小兔伴伴家庭動物園AR智能早教產品上市

2016年6月&#xff0c;經過樂卓大家庭所有人的共同努力&#xff0c;公司旗下首款新品——小兔伴伴之《家庭動物園》3D智能學習卡正式面世。 每個孩子都應該在合適的時間去體驗豐富的聲音、色彩和動作&#xff0c;《家庭動物園》&#xff0c;專為2-6歲兒童貼心設計&#xff0c;是…

EPSON 自帶CCD圖像處理包使用舉例

EPSON 機器人可以購買CCD圖像處理包選項&#xff0c;CCD圖像處理包與SPEL語言高度結合&#xff0c;可以非常快的將項目投入應用&#xff0c;舉例說明CCD圖像處理包與SPEL的聯合使用。 EPSON 以視覺序列定義圖像處理的一個項目&#xff0c;視覺序列是一組按照特定順序排列的視覺…