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