(一)实验目的
1.进一步理解临界资源的概念;
2.把握在多个进程并发执行过程中对临界资源访问时的必要约束条件;
3.理解操作系统原理中“互斥”的涵义。
(二)实验内容
   利用高级程序设计语言编程,模拟进程之间对临界资源的互斥访问过程。(要求:进程数目不少于 3 个)

解决方案 »

  1.   

    public class t
    {
       public static void main(String args[])
       {
          int n=1;   //是临界资源;
          primeThread p1=new primeThread(n);
          primeThread p2=new primeThread(n);
          primeThread p3=new primeThread(n);
          p1.start();
          p2.start();
          p3.start();
       }
    }
    class primeThread extends Thread
    {
       int flag;
       primeThread(int Num)
       {
          flag=Num;
       }
       public void run()
       {
          while(true)
          if(flag==1)
          {
             flag=flag-1;
             System.out.println(""+Thread.currentThread()+":"+flag);
             flag=flag+1;
          }
       }
    }
      

  2.   

    楼上的,请教一个问题:在这里,如果改成这样,程序效果一样,那为什么还有必要加n呢?
    public class T
    {
       public static void main(String args[])throws Exception
       {
          int n=1;   //是临界资源;
          primeThread p1=new primeThread();
          primeThread p2=new primeThread();
          primeThread p3=new primeThread();
          p1.start();
      //Thread.sleep(5);
          p2.start();
          p3.start();
       }
    }
    class primeThread extends Thread
    {
       int flag=1;
       /*primeThread(int Num)
       {
          flag=Num;
       }*/
       public void run()
       {
          while(true)
       {
          if(flag==1)
          {
             flag=flag-1;
             System.out.println(""+Thread.currentThread()+":"+flag);
             flag=flag+1;
          }
       }
       }
    }