用多線程同步方法解決讀者閱覽問題 1) 每個讀者進入閱覽室后,即時顯示“Entered” 及其線程自定義標識,還同時顯示閱覽室共有幾名顧客及其所坐的位置。 2) 至少有10個讀者,每人閱覽至少3秒鐘。 3) 多個讀者須共享操作函數代碼。 2總的設計思想及系統平臺、語言、工具: 設計思想:程序設定的是10個讀者和5個座位,對讀者進行編號,依次進入閱覽室讀書,為每一座位列一表目,包括座號和讀者號等,讀者離開時要登出,即消掉登記的信息。 系統平臺:LINUX 語言:C語言 工具:vi編輯器、gcc編譯器 操作系統:linux操作系統 調試工具:edit、masm、link、debug. 3數據結構與模塊說明(功能與流程圖) 數據結構 int count=0 //記錄閱覽室讀者數量 sem_t full //定義閱覽室座位信號量 int seat[5] //用數組表示座位 pthread_t reader[10] //定義讀者線程 pthread_mutex_t mutex //定義互斥量 3.2功能說明 可以標識讀者,隨機為讀者設置在閱覽室的讀書時間 可以顯示閱覽室讀者的人數 可以顯示讀者所坐的位置,座位狀態以及列出空座位
標簽: 多線程同步
上傳時間: 2016-08-10
上傳用戶:zsjzc
世界上最難的一道題!愛因斯坦在20世紀初出的這個謎語。他說世界上有98%的人答不出來。聰明的你,試試吧! 1、在一條街上,有5座房子,噴了5種顏色。 2、每個房里住著不同國籍的人 3、每個人喝不同的飲料,抽不同品牌的香煙,養不同的寵物 問題是:誰養魚? 提示: 1、英國人住紅色房子 2、瑞典人養狗 3、丹麥人喝茶 4、綠色房子在白色房子左面 5、綠色房子主人喝咖啡 6、抽PallMall香煙的人養鳥 7、黃色房子主人抽Dunhill香煙 8、住在中間房子的人喝牛奶 9、挪威人住第一間房 10、抽Blends香煙的人住在養貓的人隔壁 11、養馬的人住抽Dunhill香煙的人隔壁 12、抽BlueMaster的人喝啤酒 13、德國人抽Prince香煙 14、挪威人住藍色房子隔壁 15、抽Blends香煙的人有一個喝水的鄰居
標簽: 愛因斯坦
上傳時間: 2013-12-18
上傳用戶:dbs012280
在自然界中生物從其親代繼承特性或性狀,這種現象稱為遺傳(Heredity),研究這種現象的科學叫遺傳學(Genetics)。 在構成生物的細胞(Cell)中含有染色體(Chromosome),生物的遺傳信息都包含在染色體中。遺傳信息由基因(Gene)組成,基因是DNA(Deoxyribonucleic Acid)或RNA(Ribonucleic Acid)中占有一定位置的基本遺傳單位。在DNA中遺傳信息在長鏈上按照一定模式排列,即進行了遺傳編碼。遺傳基因在染色體中占據的位置稱為基因座(Locus),同一個基因座可能具有的全部基因稱為等位基因(Allele),一個細胞核中所有染色體攜帶的遺傳信息的全體稱為基因組(Genome)。
標簽:
上傳時間: 2013-12-21
上傳用戶:liglechongchong
三個野人和三個傳教士要過河。 (1). 有三個野人和三個傳教士要過河。 (2).只有一條船過河,船上每次只能座最多兩個人。 (3).任何時候,野人的數量不能比傳教士多。否則野人就要吃了傳教士。 (4).最終三個野人和三個傳教士都要過到河的對面。
標簽:
上傳時間: 2016-10-16
上傳用戶:wkchong
windows 環境下的所有報行指令, 如winver 檢查Windows版本 wmimgmt.msc 打開Windows管理體系結構(wmi) wupdmgr Windows更新程序 wscript Windows腳本宿主設置 write 寫字板 等等...其它的指令瑪
標簽: Windows windows wmimgmt wupdmgr
上傳時間: 2013-12-26
上傳用戶:225588
河內塔問題 #include<stdio.h> #include<stdlib.h> int fun_a(int) void fun_b(int,int,int,int) int main(void) { int n int option printf("題目二:河內塔問題\n") printf("請輸入要搬移的圓盤數目\n") scanf("%d",&n) printf("最少搬移的次數為%d次\n",fun_a(n)) printf("是否顯示移動過程? 是請輸入1,否則輸入0\n") scanf("%d",&option) if(option==1) { fun_b(n,1,2,3) } system("pause") return 0 } int fun_a(int n) { int sum1=2,sum2=0,i for(i=n i>1 i--) { sum1=sum1*2 } sum2=sum1-1 return sum2 } void fun_b(int n,int left,int mid,int right) { if(n==1) printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right) else { fun_b(n-1,left,right,mid) printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right) fun_b(n-1,mid,left,right) } }
上傳時間: 2016-12-08
上傳用戶:努力努力再努力
程序大小4K,SIMENS-PLC S7-200,用于奧迪A6車的座靠背五個固定螺絲的行程和力距檢測,軟件雖小,可每一臺奧迪車都經過了此系統的檢測,否則不能下線。這是單PLC版本的。作者:柳彥春 13944902227
標簽: 程序
上傳時間: 2016-12-18
上傳用戶:
GM812X 系列串口擴展芯片可為用戶提供最簡單和高性能的通用串口擴展方案,該系列芯 片子串口最高波特率達38400bps。該芯片提供兩種工作模式,用戶可根據需要靈活選擇。該芯 片母串口和子串口的工作波特率可由軟件調節,而不需要修改外部電路和晶振頻率。 GM812X 系列芯片的外部控制少,應用靈活,編程使用簡單,適合于大多數需要多串口擴 展的應用場合。 驅動C代碼
上傳時間: 2014-01-24
上傳用戶:hopy
SD引腳圖,關于SD卡座的說明,可以應用
標簽: 引腳圖
上傳時間: 2016-12-28
上傳用戶:zhouchang199
1:打開IAR開發環境,打開光盤里程序工程。 2:連接 DTD243A_Demo板,并把P1座的短路塊插上,把程序下載到兩個模塊上。 3:對于要發送數據的模塊,把其DTD243A模塊擴展接口的16腳P0.1與15腳P0.0用短接冒短接起來;而用于接收的模塊把模塊擴展接口的16腳P0.1與17腳P0.2短接起來。 4:為兩個模塊通電可以看見兩個模塊在通訊(兩個模塊的P1.1上的D33燈和P1.0燈D32都交替閃爍)。
上傳時間: 2014-06-24
上傳用戶:tyler