linux多線程模擬銀行家算法


題外話:

這應該是最近有點難度的作業了,起碼比之前的理發師,讀寫,哲學家問題要難。

但是做好程序的結構,自頂向下,就還是不難的。 

銀行家算法簡介:

 


 

 

 

 

 

 

 

 

代碼:

init() 初始化  reset() 資源回收  Banker() 銀行家算法 safe() 安全性算法

 


 

 


 

 


 

 


 

 


 

 


 

 


 

 


 

效果圖:

 


 

 


 

 


 

 


 

遇到的問題:

主要問題是一開始用sem_t聲明mutex,結果不能pthread_cond_wait(&cond, &mutex);看來必須用pthread_mutex_t mutex;

vector數組clear時需要指定Allocation[i],而非Allocation.clear()


 

錯誤原因:

其一:忘了加&


 

其二:i在不斷++,雖然調用pthread_create在i++前,但是可能存在時間差導致傳的是i增加后的數,導致越界。所以換為數組。

 


 

以及常見的忘記右括號,忘記分號....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM