• 大小: 2KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-01-07
  • 语言: Java
  • 标签: JAVA  哲学家  进餐  

资源简介

利用JAVA解决哲学家进餐的经典问题。 很简单的小程序。

资源截图

代码片段和文件信息

class ChopStick {    //筷子类
boolean available;
    ChopStick() {
        available=true;  //可以拿起
   }
    public synchronized void takeup() {  //拿起动作
        while(!available) {
            try {
                wait(); 
                System.out.println(“哲学家等待另一根筷子“);  
            } catch(InterruptedException e) { }
     }
        available=false;
    }
    
    public synchronized void putdown() {  //放下动作
        available=true;
        notify();
    }
}


class Philosopher extends Thread {   //哲学家类
    ChopStick left right;  
    int philo_num;  //哲学家编号
     
     Philosopher (int num ChopStick c1 ChopStick c2) {
         philo_num = num;
         left = c1;
         right = c2;
         setDaemon(true);  //此函数设true时,关闭主线程,子线程也跟着关闭
         //否则,关闭主线程

评论

共有 条评论