银行家算法 避免死锁 #include #include #include #include #define A 100 int SRJY 对输入的值进行检验 是数字通过 否则重新输入 { char l[A]; int o v i f m; double a; a 0 0; o 0; do { m 1; scanf "%s" &l ; v strlen l ; for i 0;i<v;i++ { if l[i]"9" { printf &q
什么是死锁
死锁是指多个进程因竞争资源而引起的一种僵局,如果没有外力作用,所有进程都不会向前推进。
举例:假如有线程Thread1和Thread2,两个都要访问共享资源AB,Thread1和Thread2一个先访问A再访问B,另一个先访问B再访问A。但在他们线程未执行完时,都不会释放AB资源,那么就形成了一种僵局,Thread1在等待Thead2施放B资源,Thread2在等待Thread1释放A资源,两个进程就形成了一种僵局,下面以Java代码实现为例说明:
public class Dea