久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

售票員和汽車司機(jī)的進(jìn)程同步問題

時(shí)間:2019-05-13 12:14:53下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《售票員和汽車司機(jī)的進(jìn)程同步問題》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《售票員和汽車司機(jī)的進(jìn)程同步問題》。

第一篇:售票員和汽車司機(jī)的進(jìn)程同步問題

計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)報(bào)告

一、實(shí)驗(yàn)名稱:售票員和汽車司機(jī)的進(jìn)程同步問題

二、實(shí)驗(yàn)內(nèi)容:創(chuàng)建兩個(gè)進(jìn)程模擬售票員和汽車司機(jī)的同步行為。具體內(nèi)容如下:

1.司機(jī)的活動(dòng):啟動(dòng)車輛,正常行車,到站停車。2.售票員活動(dòng):關(guān)車門,售票,開車門。

3.當(dāng)發(fā)車時(shí)間到,售票員關(guān)好車門后,司機(jī)才能啟動(dòng)車輛,售票員才開始售票。當(dāng)?shù)秸緯r(shí),司機(jī)停穩(wěn)車后,售票員才能打開車門,車上乘客先下車,然后站牌乘客上車。

三、問題分析與設(shè)計(jì)

分析:司機(jī)與售票員要協(xié)同工作:一方面只有售票員把門關(guān)好之后司機(jī)才可開車,因此售票員關(guān)好門之后要通知司機(jī)開車,然后售票;另一方面,也只有司機(jī)把車停下之后售票員才能開門讓乘客下車和上車,因此,此時(shí)司機(jī)應(yīng)通知售票員。汽車當(dāng)前正在始發(fā)站停車讓乘客讓乘客上車,因此,必須設(shè)置一定的信號(hào)量來實(shí)現(xiàn)他們之間的同步問題。

設(shè)計(jì):設(shè)置司機(jī)與售票員的信號(hào)量為全局變量,并且客車的人數(shù):現(xiàn)在人數(shù)、下車人數(shù)、上車人數(shù)為全局變量;設(shè)置司機(jī)與售票員的線程。考慮到第一站和最后一站的問題,應(yīng)單獨(dú)處理,故在各自的線程中分情況討論:

具體的思路是下面的圖示。其中S1是司機(jī)的信號(hào)量,S2是售票員的信號(hào)量。

程序的實(shí)現(xiàn)(代碼): #include #include #include #include #define Total_num 50 //客車的最大容量 #define Total_pork 8 //總的站數(shù) //全局變量

int Recent_num=0;//某一時(shí)刻的客車上的人數(shù) int Get_on_num;//上車的人數(shù) int Get_off_num;//下車的人數(shù) int pork=1;//客車到達(dá)路線的站數(shù) HANDLE Semaphore_driver;//Driver的信號(hào)量 HANDLE Semaphore_conductor;//Conductor的信號(hào)量 //產(chǎn)生一定范圍的隨機(jī)數(shù),可避免下面程序的判斷是否超出客車的最大容量問題

int Get_random(int min,int max){ int a;srand((int)time(0));while(1){ a=rand()%(Total_num+1);if(a>=min && a<=max)return a;} } //Driver的線程

DWORD WINAPI Thread_Driver(LPVOID Driver){ while(pork<=Total_num){ if(pork==Total_pork){ WaitForSingleObject(Semaphore_driver,INFINITE);printf(“終點(diǎn)站到了,謝謝乘坐該公交車,祝您愉快!n”);printf(“到達(dá)終點(diǎn)站時(shí)汽車上還有 %d 人。n”,Recent_num);ReleaseSemaphore(Semaphore_conductor,1,NULL);return 0;} else { if(pork==1)printf(“發(fā)車時(shí)間到,現(xiàn)在是第 %d 站n”,pork);else printf(“ %d 站到了n”,pork);if(pork!=1)printf(“司機(jī)已停車。n”);

ReleaseSemaphore(Semaphore_conductor,1,NULL);// 增加信號(hào)量

WaitForSingleObject(Semaphore_driver,INFINITE);printf(“已關(guān)門,汽車開始行使。n”);ReleaseSemaphore(Semaphore_conductor,1,NULL);} Sleep(1000);} return 0;} //Conductor的線程

DWORD WINAPI Thread_Conductor(LPVOID Conductor){ while(1){ if(pork < Total_pork){

WaitForSingleObject(Semaphore_conductor,INFINITE);if(pork==1){

Get_on_num=Get_random(0,Total_num-Recent_num);printf(“ %d 人已經(jīng)從該站上車。n”,Get_on_num);Recent_num+=Get_on_num;} else { printf(“售票員請(qǐng)開門讓乘客上下車!n”);Get_off_num=Get_random(0,Recent_num);printf(“%d人從第 %d 站下車。n”,Get_off_num,pork);Sleep(1000);//避免了時(shí)間的問題帶來的不是隨機(jī)數(shù)的現(xiàn)象

Recent_num-=Get_off_num;Get_on_num=Get_random(0,Total_num-Recent_num);printf(“%d人從該第 %d 站上車。n”,Get_on_num,pork);Recent_num+=Get_on_num;} printf(“此時(shí)車上共有:%d人n”,Recent_num);printf(“上車或下車完畢,售票員請(qǐng)關(guān)門!n”);ReleaseSemaphore(Semaphore_driver,1,NULL);

WaitForSingleObject(Semaphore_conductor,INFINITE);printf(“現(xiàn)在售票員開始售票。n”);printf(“nnnn”);pork++;} if(pork==Total_pork){ ReleaseSemaphore(Semaphore_driver,1,NULL);

WaitForSingleObject(Semaphore_conductor,INFINITE);printf(“售票員請(qǐng)開門讓乘客下車!n”);return 0;} Sleep(1000);} return 0;} //主函數(shù) int main(){ HANDLE Driver;HANDLE Conductor;

Semaphore_driver=CreateSemaphore(NULL,0,1,“semaphore_driver”);//創(chuàng)建Driver的信號(hào)量

Semaphore_conductor=CreateSemaphore(NULL,0,1,“semaphore_conductor”);//創(chuàng)建Conductor的信號(hào)量

Driver=CreateThread(NULL,0,Thread_Driver,&Driver,0,NULL);//創(chuàng)建Driver的線程

Conductor=CreateThread(NULL,0,Thread_Conductor,&Conductor,0,NULL);//創(chuàng)建Conductor的線程

CloseHandle(Driver);//關(guān)閉Driver的線程 CloseHandle(Conductor);//關(guān)閉Conductor的線程 //GetLastError();while(1);system(“pause”);return 0;}

程序執(zhí)行結(jié)果:

實(shí)驗(yàn)心得與反思:

通過本次實(shí)驗(yàn),加深了我們對(duì)進(jìn)程同步與互斥的理解,而且懂WaitForSingleObject函數(shù)的作用,它相當(dāng)于P操作;而ReleaseSemaphore函數(shù)相當(dāng)于V操作,用這兩個(gè)函數(shù)來實(shí)現(xiàn)P,V操作,以改變信號(hào)量的值,從而實(shí)現(xiàn)進(jìn)程同步。實(shí)驗(yàn)過程中,我們發(fā)現(xiàn)以下是我們應(yīng)該反思的:

1:線程的創(chuàng)建的函數(shù)的參數(shù)的理解還不太懂,主要是沒學(xué)過,對(duì)于其中的一些調(diào)用函數(shù)不太懂里面的意思。

2:線程的設(shè)計(jì)要考慮到各個(gè)情況,第一站和最后一戰(zhàn),還有其中的全局的變量的運(yùn)算的放到的是售票員的線程中,也就是其中的一些操作的位置問題,要考慮到同步的兩個(gè)線程之間的關(guān)系。3:關(guān)于信號(hào)量的問題,其要的是全局變量。

4:最最重要的是一些Win32 API 中的庫函數(shù)有關(guān)線程的創(chuàng)建等的理解,對(duì)其中的函數(shù)參量的理解有待進(jìn)一步學(xué)習(xí)理解。

09信管(2)班

何美西 109253030212 樊麗彬 109253030215 孔娜 109253030218

第二篇:司機(jī)與售票員原創(chuàng) 完整代碼

自己寫的:(功能感覺達(dá)到我要目的,感覺沒有把操作量層次寫出來,大家參考學(xué)習(xí))

#include #include using namespace std;

#define max 80//假設(shè)汽車的最大容量為80 int num=0;//初始還沒有啟動(dòng)客車上的人數(shù)為0 int sc=0;//上車的人數(shù) int xc=0;//下車的人數(shù)

int k;//上車-下車,停站上下車后后人數(shù)變化,即凈上車人數(shù);

//k=sc-xc;//凈上車人數(shù)/

int dr();int cd();

int check(){

if(sc==-1||xc==-1)

{cout<<“旅途愉快,汽車到達(dá)總站,再見”<

exit(1);

}

return 0;}

int dr()//司機(jī)driver的信號(hào)量 {

//num=num+k;if(num<=max){

cout<<“汽車關(guān)門準(zhǔn)備開車!”<

}

cout<<“司機(jī)開車!”<

int c,sji;//超載人數(shù)/實(shí)際上車人數(shù)

k=sc-xc;//凈上車人數(shù)/

num=num+k;//上下乘客后車上人數(shù)

if(num<=max)

{

cout<<“現(xiàn)在車上人數(shù)為:”<

cout<<“坐好扶穩(wěn)!”<

cout<<“===================================”<

cout<<“===================================”<

cout<<“===================================”<

}

if(num>max)

{

c=num-max;sji=sc-c;

cout<<“超載”<

num=max;cout<<“已下”<

} return 0;}

/*主函數(shù)*/ int main(){

cout<<“=========歡迎使用司機(jī)與售票員信息量同步公交車系統(tǒng)=============”<

cout<<“請(qǐng)輸入上車人數(shù)!”<>sc;num=num+sc;

while(num>max)

{

cout<<“警告:輸入上車人數(shù)后,人數(shù)已經(jīng)超過限載人數(shù),輸入錯(cuò)誤請(qǐng)重新輸入”<

cout<<“重新輸入上車人數(shù)為:”<

cin>>sc;

num=sc;

check();

} cout<<“第一次啟動(dòng)上車人數(shù)為”<

check();

while(sc!=-1||xc!=-1)

{

cout<<“汽車行駛中.......!”<

cout<<“請(qǐng)輸入下車人數(shù)!”<>xc;

check();

while(xc>num)

{

cout<<“輸入下車人數(shù)超過車上人數(shù),輸入錯(cuò)誤,請(qǐng)重新輸入”<

cout<<“重新輸入下車人數(shù)為:”<

cin>>xc;

check();

}

cout<<“請(qǐng)輸入上車人數(shù)!”<>sc;

//cout<<“上車人數(shù)為”<

check();if(num>max)

{

cout<<“警告:輸入上車人數(shù)后車?yán)锶藬?shù)已經(jīng)超過車的限載人數(shù)”<

}

//num=num+sc-xc;//上下乘客后車上人數(shù)

//cout<<“車上人數(shù)總共為”<

dr();

}

return 0;}

網(wǎng)上下載的:好像作者上傳缺少311.h頭文件

#include #include #include #include “311.h” #include “random.h”

using namespace std;

HANDLE Semaphore_dirver;//司機(jī)信號(hào)量的句柄

HANDLE Semaphore_condutor;//售票員信號(hào)量的句柄

int num_station=0;

//司機(jī)進(jìn)程

void Thread_Driver(){ while(true)

{ if(WaitForSingleObject(Semaphore_dirver,INFINITE)==WAIT_OBJECT_0)//相當(dāng)與P(Semaphore_dirver)操作

{cout<<“汽車行駛中,請(qǐng)您扶穩(wěn)坐好!”<

Sleep(5000);//行車時(shí)間

}

ReleaseSemaphore(Semaphore_condutor, 1, NULL);//相當(dāng)與V(Semaphore_condutor)操作提醒售票員可以售票了

} }

//售票員進(jìn)程

void Thread_Conductor(){ while(true)

{ if(WaitForSingleObject(Semaphore_condutor,INFINITE)==WAIT_OBJECT_0)//判斷車是否已停

if(!num_station)

//第一站

{cout<<“沒人下車”<

num_station++;

NUM_ON=random_num(NUM_MAX);

Sleep(3000);//乘客上車時(shí)間

cout<

NUM_CURRENT=NUM_ON+NUM_INITIAL;//起始站上車的人數(shù)

}

else

{ cout<<“車輛進(jìn)站,請(qǐng)您注意安全!開門請(qǐng)當(dāng)心,下車請(qǐng)走好!下車后請(qǐng)勿從車前繞行!”<

Sleep(3000);//乘客下車時(shí)間

NUM_DOWN=random_num(NUM_CURRENT);//下車人數(shù)

cout<

NUM_CURRENT=NUM_CURRENT-NUM_DOWN;//下車后的人數(shù)

if(NUM_CURRENT

{ cout<<“311路無人售票車開往南門,請(qǐng)您按順序投幣上車!”<

cout<<“上車的乘客請(qǐng)從后門移動(dòng),準(zhǔn)備下車!”<

Sleep(3000);//乘客上車時(shí)間

NUM_ON=random_num(NUM_MAX-NUM_CURRENT);//上車人數(shù)

cout<

NUM_CURRENT=NUM_CURRENT+NUM_ON;//上車后人數(shù)

cout<<“車上有”<

}

else

cout<<“座位已滿,請(qǐng)等下一輛!”<

}

ReleaseSemaphore(Semaphore_dirver,1,NULL);//讓司機(jī)開車的信號(hào)

} }

/*主函數(shù)*/ int main(){ HANDLE thread[2];//定義兩個(gè)線程句柄

Semaphore_dirver = CreateSemaphore(NULL,1, 1, NULL);//司機(jī)信號(hào)量

Semaphore_condutor = CreateSemaphore(NULL, 0, 1, NULL);//售票員信號(hào)量

DWORD threadID[2];

thread[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Thread_Driver),NULL,0,&threadID[0]);//司機(jī)進(jìn)程

thread[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Thread_Conductor),NULL,0,&threadID[1]);//售票員進(jìn)程

WaitForMultipleObjects(1, thread, TRUE, INFINITE);//等待兩個(gè)線程結(jié)束

return 0;}

第三篇:汽車售票員阿姨

汽車售票員阿姨

今年暑假,媽媽帶我去溫州小姑家做客。

一路上,車子輕快地奔馳著,窗外風(fēng)景優(yōu)美,山上綠樹成蔭,綠油油的小草仿佛給山上鋪上一層厚厚的毛毯。在車上,我和媽媽有說有笑。我一邊喝著尖叫的飲料,一邊唱著歡快的歌曲。突然一個(gè)急剎車,我一陣惡心,急忙對(duì)媽媽說:媽媽很想吐。媽媽連忙蹲下拿塑料袋,可我嘩一下全吐在了媽媽身上。全車人都回過頭來捂著嘴看著媽媽,媽媽狼狽不堪。正在這時(shí),售票員阿姨毫不猶豫的拿來紙巾,一邊替我擦拭吐在身上的臟物,一邊安慰說:別急,別急,你等會(huì)會(huì)好的。還倒開水給我喝,過了一會(huì)兒我舒服多了,不知不覺中我在媽媽的懷里睡著了。

當(dāng)我再醒來的時(shí)候,車子停住了。我特意去看了看了那位阿姨。她秀麗端莊,和藹可親,嘴角上堆滿笑容。你看,她又在忙著扶一位白發(fā)蒼蒼的老奶奶上車,幫助上下車的乘客拿行李。這就是汽車售票員阿姨。

第四篇:用多線程模擬汽車司機(jī)與售票員需求分析試驗(yàn)報(bào)告

操作系統(tǒng):用多線程模擬汽車司機(jī)與售票員需求分析試驗(yàn)報(bào)告

本實(shí)驗(yàn)利用多線程模擬汽車司機(jī)與售票員之間的協(xié)同工作即同步過程。一方面只有售票員把車門關(guān)好了司機(jī)才能開車,因此,售票員關(guān)好車門應(yīng)通知司機(jī)開車;另一方面,只有汽車已經(jīng)停下,售票員才能開門上下客,故司機(jī)停車后應(yīng)通知售票員。實(shí)驗(yàn)的結(jié)果是在屏幕顯示二者的同步過程。

一、設(shè)計(jì)過程

基本原理:在Windows的一個(gè)進(jìn)程內(nèi)包含一個(gè)或多個(gè)線程,32位Windows環(huán)境下的WIN32 API提供了多線程應(yīng)用程序開發(fā)所需的接口函數(shù),本實(shí)驗(yàn)就是C++語言編寫的WIN32 API的多線程編程。具體過程:

1.創(chuàng)建兩個(gè)信號(hào)對(duì)象,設(shè)定初始值;

2.創(chuàng)建兩個(gè)子線程函數(shù),一個(gè)為司機(jī)的操作過程,一個(gè)為售票員的操作過程。我們?cè)谶@里設(shè)定站點(diǎn)數(shù)為10個(gè);在司機(jī)操作的子線程中,用一個(gè)while循環(huán),當(dāng)?shù)阶詈笠徽緯r(shí),就退出,此時(shí),程序運(yùn)行結(jié)束。3.編寫主線程函數(shù),在其中調(diào)用兩個(gè)子線程。

二、源代碼

#include #include

HANDLE hSemaphore1=CreateSemaphore(NULL, 0, 1, NULL);HANDLE hSemaphore2=CreateSemaphore(NULL, 0, 1, NULL);

int station=1;

DWORD WINAPI ThreadDriver(LPVOID LpParameter){

while(station<=10){

cout<<“司機(jī)正常行車”<

cout<<“前方為”<

if(station==10)

{

cout<<“終點(diǎn)站到了”<

return 0;

}

cout<<“到達(dá)”<

ReleaseSemaphore(hSemaphore2,1,NULL);

WaitForSingleObject(hSemaphore1,INFINITE);

cout<<“離站開車”<

Sleep(500);

station++;} return 0;}

DWORD WINAPI ThreadConductor(LPVOID LpParameter){ while(1){ WaitForSingleObject(hSemaphore2,INFINITE);

cout<<“售票員開門”<

cout<<“售票員關(guān)門”<

cout<<“售票員向剛上車售票”<

ReleaseSemaphore(hSemaphore1,1,NULL);

Sleep(1000);

} return 0;}

int main(){ HANDLE hDriver;HANDLE hConductor;cout<<“多線程模擬司機(jī)售票員同步過程n”;cout<<“----------------------------n”;

hDriver=CreateThread(NULL,0,ThreadDriver,NULL,0,NULL);Sleep(10);hConductor=CreateThread(NULL,0,ThreadConductor,NULL,0,NULL);Sleep(300000);CloseHandle(hDriver);CloseHandle(hConductor);return 0;}

三、運(yùn)行結(jié)果:

多線程模擬司機(jī)售票員同步過程----------------------------司機(jī)正常行車 前方為1站點(diǎn) 到達(dá)1站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為2站點(diǎn) 到達(dá)2站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為3站點(diǎn) 到達(dá)3站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為4站點(diǎn) 到達(dá)4站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為5站點(diǎn) 到達(dá)5站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為6站點(diǎn) 到達(dá)6站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為7站點(diǎn) 到達(dá)7站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為8站點(diǎn) 到達(dá)8站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為9站點(diǎn) 到達(dá)9站點(diǎn) 售票員開門 乘客正在上車 售票員關(guān)門

售票員向剛上車售票 離站開車

司機(jī)正常行車 前方為10站點(diǎn) 終點(diǎn)站到了

四、程序結(jié)果分析

從運(yùn)行結(jié)果看,基本上模擬了司機(jī)和售票員的同步過程。此程序簡單的實(shí)現(xiàn)了線程間的同步過程,即運(yùn)用win32提供的接口函數(shù),主要是CreateThread,WaitForSingleObject,ReleaseSemaphore這幾個(gè)函數(shù)實(shí)現(xiàn)主要功能。

程序還有很多欠缺,需要做進(jìn)一步的改進(jìn)。比如可以實(shí)際線路的同步過程,考慮司機(jī)與售票員同步過程中的更多現(xiàn)實(shí)因素,比如,提供站點(diǎn)時(shí)間、上下車人數(shù)等等,將其運(yùn)用到實(shí)際當(dāng)中去。

第五篇:計(jì)算機(jī)操作系統(tǒng)-司機(jī)與售票員的進(jìn)程問題-實(shí)驗(yàn)報(bào)告

計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)報(bào)告

-------售票員和汽車司機(jī)的進(jìn)程同步問題

一、設(shè)計(jì)分析

司機(jī)與售票員要協(xié)同工作:一方面只有售票員把門關(guān)好之后司機(jī)才能開車,因此售票員關(guān)好門之后要通知司機(jī)開車;另一方面,也只有司機(jī)把車停下之后售票員才能開門讓乘客下車和上車,此時(shí)司機(jī)應(yīng)通知售票員。汽車當(dāng)前正在始發(fā)站停車讓乘客上車。因此,必須設(shè)置一定的信號(hào)量來實(shí)現(xiàn)他們之間的同步問題。

把司機(jī)與售票員的信號(hào)量設(shè)置為全局變量,并把客車上的人數(shù):現(xiàn)在人數(shù)、下車人數(shù)、上車人數(shù)設(shè)置為全局變量;設(shè)置司機(jī)與售票員各自的線程。考慮到第一站和最后一站的問題,應(yīng)單獨(dú)處理,故在各自的線程中分情況討論:

由于下車的人數(shù)是隨機(jī)的,設(shè)計(jì)時(shí)考慮到了人數(shù)可能會(huì)超過客車的最大上限的問題。具體的思路是下面的圖示。

二、算法實(shí)現(xiàn)(源代碼)

#include #include #include #include #include #define total_num 88

//假設(shè)汽車的最大容量為88 #define total_pork 9

//總的站數(shù)

int recent_num=0;

//某一時(shí)刻的客車上的人數(shù) int get_on_num;

//上車的人數(shù) int get_off_num;

//下車的人數(shù) int pork=1;

//賦初始值 HANDLE SJ;

//司機(jī)的信號(hào)量 HANDLE SPY;

//售票員的信號(hào)量

int Get_random(int min, int max)

//產(chǎn)生一定范圍的隨機(jī)數(shù),可避免下面程序的判斷超出客車的最大容量問題{ int a;srand((int)time(0));

while(1){ a=rand()%(total_num+1);if(a>=min && a<=max)return a;} } //司機(jī)的線程

DWORD WINAPI Thread_Driver(LPVOID Driver){ while(pork<=total_num){ if(pork==total_pork){ WaitForSingleObject(SJ,INFINITE);cout<<“到達(dá)總站,歡迎您下次乘坐**路公交車”<

{ ReleaseSemaphore(SPY,1, NULL);WaitForSingleObject(SJ,INFINITE);cout<<“汽車啟動(dòng)”<

} Sleep(1000);} return 0;} //售票員的線程

DWORD WINAPI Thread_Conductor(LPVOID SPY){ while(1){

if(pork

cout<<“這是第”<

WaitForSingleObject(SPY,INFINITE);if(pork==1){

cout<<“SPY開始售票”<

get_on_num=Get_random(0,total_num-recent_num);

cout<

recent_num+=get_on_num;cout<<“共有”<

{

cout<<“SJ停好車,乘客開始上下車”<

get_off_num=Get_random(0,recent_num);

cout<Sleep(1000);recent_num-=get_off_num;cout<<“SPY開始賣票”<cout<<“此時(shí)車上總共有”<

return 0;} //主函數(shù)

int main(){ HANDLE SJ;HANDLE SPY;SJ=CreateSemaphore(NULL,0,1,“semaphore_driver”);//創(chuàng)建司機(jī)的信號(hào)量 SPY=CreateSemaphore(NULL,0,1,“semaphore_conductor”);//創(chuàng)建售票員的信號(hào)量

SJ=CreateThread(NULL,0,Thread_Driver,&SJ,0,NULL);//創(chuàng)建司機(jī)的線程 SPY=CreateThread(NULL,0,Thread_Conductor,&SPY,0,NULL);//創(chuàng)建售票員的線程 CloseHandle(SJ);CloseHandle(SPY);while(1);system(“pause”);return 0;}

三.實(shí)現(xiàn)結(jié)果

四、心得體會(huì)

1、因?yàn)樗緳C(jī)與售票員是兩條單獨(dú)處理的線程。程序先對(duì)司機(jī)的線程進(jìn)行設(shè)計(jì),接著再進(jìn)行售票員的線程設(shè)計(jì)。因?yàn)閮烧呤切枰嗷f(xié)調(diào),又先后順序的,所以編起程序來比較復(fù)雜,而且很亂,尤其對(duì)于第一次接觸的我們而言。

2、上下車的人數(shù)是隨機(jī)的,所以,我們?cè)诰幊绦驎r(shí)必須注意使程序能夠判斷所出現(xiàn)的隨機(jī)數(shù)在汽車可以承載的最大容量之內(nèi)。

3、C++語言基礎(chǔ)不是很好,所以編起程序來比較費(fèi)力,這種設(shè)計(jì)性的實(shí)驗(yàn)對(duì)于我們而言還是有一定的難度的,所以部分程序是參照網(wǎng)上的類似程序。

下載售票員和汽車司機(jī)的進(jìn)程同步問題word格式文檔
下載售票員和汽車司機(jī)的進(jìn)程同步問題.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    實(shí)踐報(bào)告之汽車售票員

    西南科技大學(xué)2009-2010學(xué)年 署假大學(xué)生社會(huì)實(shí)踐 實(shí)踐報(bào)告 報(bào)告題目: 實(shí)踐報(bào)告之汽車售票員 作者姓名: 楊松 學(xué) 院: 環(huán)資學(xué)院 專業(yè)班級(jí): 安全08級(jí)2班 學(xué) 號(hào): 20080995 共青團(tuán)西南......

    汽車司機(jī)崗位職責(zé)

    汽車司機(jī)崗位職責(zé) 一、講究交通公德和職業(yè)道德,文明駕駛,禮貌行車,嚴(yán)格遵守交通法規(guī),自覺服從交警指揮。 二、認(rèn)真遵守公司、項(xiàng)目規(guī)定的車輛使用維護(hù)及管理制度,堅(jiān)持車輛“三檢制......

    汽車司機(jī)個(gè)人簡歷

    姓名: 魏** 身高: 168cm 性別: 男 工作經(jīng)驗(yàn): 10年以上 民族: 漢族 學(xué)歷: 高中 出生年月: 1979-01-01 所學(xué)專業(yè): 司機(jī) 自我評(píng)價(jià) 籍貫: 寧波鄞州區(qū)輕紡城 現(xiàn)居住地: 婚姻狀況: 已婚......

    汽車客運(yùn)站售票員售票操作規(guī)范

    汽車客運(yùn)站售票員售票服務(wù)規(guī)范 1. 售票前準(zhǔn)備工作 (1) 正確放置告知牌; (2) 零錢擺放有序; (3) 啟動(dòng)計(jì)算機(jī)售票系統(tǒng),輸入本人工作代碼,核對(duì)票號(hào); (4) 熟練地將客票裝入打印機(jī); (5) 檢查售票......

    汽車司機(jī)自我評(píng)價(jià)[范文大全]

    引導(dǎo)語:自我評(píng)價(jià)是主體對(duì)自己思想、愿望、行為和個(gè)性特點(diǎn)的判斷和評(píng)價(jià)。作為汽車司機(jī),應(yīng)該如何對(duì)自己的工作做出評(píng)價(jià)呢?小編精心為你準(zhǔn)備了幾篇范文,希望你們采納使用哦!汽車司機(jī)......

    汽車司機(jī)聘用合同范文合集

    汽車司機(jī)聘用合同現(xiàn)今很多公民的維權(quán)意識(shí)在不斷增強(qiáng),越來越多事情需要用到合同,簽訂合同也是最有效的法律依據(jù)之一。那么相關(guān)的合同到底怎么寫呢?以下是小編精心整理的汽車司機(jī)......

    汽車司機(jī)崗位責(zé)任制五篇范文

    汽車司機(jī)崗位責(zé)任制1、在206、860管理組長的管理下負(fù)責(zé)拉運(yùn)矸石,決不允許出現(xiàn)頂倉和異地排矸; 2、汽車司機(jī)必須嚴(yán)格服從場地負(fù)責(zé)人的管理,未經(jīng)同意不得拉運(yùn)矸石、不準(zhǔn)超載; 3、......

    汽車司機(jī)工作職責(zé)

    一、負(fù)責(zé)校級(jí)領(lǐng)導(dǎo)接送班工作,汽車司機(jī)工作職責(zé)。二、負(fù)責(zé)學(xué)校臨時(shí)出車任務(wù)。出車要經(jīng)校長及主管副校長同意并簽字。三、負(fù)責(zé)車庫的物品擺入及衛(wèi)生工作。四、接受學(xué)校安排的臨......

主站蜘蛛池模板: 一区二区和激情视频| 亚洲综合成人婷婷五月网址| 竹菊影视欧美日韩一区二区三区四区五区| 少妇高潮太爽了在线观看欧美| 日本精品中文字幕在线播放| 亚洲人成亚洲人成在线观看| 性高湖久久久久久久久| 人人做人碰人人添| 狠狠色丁香婷婷综合潮喷| 人妻少妇无码精品视频区| 国产精品久久久久久人妻精品动漫| 亚洲精品99久久久久久欧美版| 嫩草影院永久在线| 亚洲精品国产品国语原创| 亚洲av成人精品日韩在线播放| 久久精品人人看人人爽| 欲色天天网综合久久| 欧洲美妇乱人伦视频网站| 777天堂麻豆爱综合视频| 高清一区二区三区免费视频| 国产精品无码dvd在线观看| 1000部夫妻午夜免费| 伊在人亚洲香蕉精品区麻豆| 欧洲美女熟乱av| 亚洲精品国产欧美一二区| 丰满少妇在线观看网站| 国产精品青草久久福利不卡| 免费大片黄国产在线观看| 亚洲日本高清一区二区三区| 亚在线第一国产州精品99| 野花社区视频在线观看| 综合色区亚洲熟妇另类| 大色综合色综合网站| 性色香蕉av久久久天天网| 免费人成视频网站在线观看18| 亚洲精品suv精品一区二区| 情侣黄网站免费看| 亚洲欧美一区久久牛牛| 亚洲国产一区二区三区在观看| 中文字幕精品一区二区2021年| 人人爽久久久噜噜噜婷婷|