哲学家进餐问题

1.最多允许四个哲学家同时进餐,保证有一个筷子是空闲的,从而保证能有有一个哲学家成功进餐,而不导致死锁

semaphore chopstick[5] = {1, 1, 1, 1, 1}, mutex=4;
Pi(){
	do{
		think...
		P(mutex);
		P(chopstick[i]);
		P(chopstick[(i+1)%5);
		eat...
		V(mutex);
		V(chopstick[i]);
		V(chopstick[(i+1)%5);
	}while(1);
}

2.给哲学家编号,要求奇数哲学家先拿左边的筷子,再拿右边的筷子,而偶数哲学家相反

semaphore chopstick[5] = {1,1,1,1,1}; 		//初始化信号量

void philosopher(int i){
  do {
    thinking...	
    if(i%2 == 1){
      P(chopstick[i]);//判断哲学家左边的筷子是否可用
      P(chopstick[(i+1)%5]);//判断哲学家右边的筷子是否可用
    }else{
      P(chopstick[(i+1)%5]);//判断哲学家右边的筷子是否可用
      P(chopstick[i]);//判断哲学家左边的筷子是否可用
    }
    eat...
    V(chopstick[i]);
    V(chopstick[(i+1)%5]);
  }while(1);
}

3.一名哲学家左右两边的筷子均可用
时,才允许进餐

semaphore chopstick[5] = {1, 1, 1, 1, 1},mutex=1;
Pi(){
	do{
		think...
		P(mutex); //使用一个互斥信号量,保证拿起左右两边的筷子是一气呵成的操作
		P(chopstick[i]);
		p(chopstick[(i+1)%5]);
		V(mutex);
		eating...
		V(chopstick[i]);
		V(chopstick[(i+1)%5]);
	}while(1);
}

相关推荐

  1. 哲学家进餐问题

    2024-06-12 23:38:01       32 阅读
  2. 哲学家就餐问题

    2024-06-12 23:38:01       35 阅读
  3. 哲学 学习笔记01】哲学家及其思想汇总

    2024-06-12 23:38:01       54 阅读
  4. 解决没有进入docker的权限问题

    2024-06-12 23:38:01       61 阅读
  5. python多进程multiprocessing卡住问题

    2024-06-12 23:38:01       38 阅读
  6. 中西入门哲学史差异记录

    2024-06-12 23:38:01       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 23:38:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 23:38:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 23:38:01       87 阅读
  4. Python语言-面向对象

    2024-06-12 23:38:01       96 阅读

热门阅读

  1. ARM 汇编 C语言 for循环

    2024-06-12 23:38:01       26 阅读
  2. day7C++

    2024-06-12 23:38:01       22 阅读
  3. 解封装类的实现【3】

    2024-06-12 23:38:01       28 阅读
  4. <题海拾贝>[递归]2.合并两个有序链表

    2024-06-12 23:38:01       31 阅读
  5. Element ui 快速入门

    2024-06-12 23:38:01       31 阅读
  6. 【x264】lookahead模块的简单分析

    2024-06-12 23:38:01       29 阅读
  7. sam_out 脱发预测

    2024-06-12 23:38:01       25 阅读
  8. web前端分离:解析其深层含义与影响

    2024-06-12 23:38:01       27 阅读