Java猫狗共饮一泉问题


Java猫狗共饮一泉问题

package pukepai;

import java.lang.annotation.Target;

public class test1
{

    public static void main(String args[])
    {

        Thread dog, cat;
        Water water = new Water(10);
        dog = new Thread(water);
        cat = new Thread(water);
        dog.setName("dog");
        cat.setName("cat");
        dog.start();
        cat.start();

    }
}

class Water implements Runnable
{
    int Water;

    public Water(int waternumber)
    {
        Water = waternumber;
    }

    public void run()
    {
        String name = Thread.currentThread().getName();
        while (true)
        {
            if (name.equals("dog"))
            {
                if (Water >= 2)
                {
                    System.out.println("狗喝了2口");
                    Water -= 2;
                    System.out.println("还剩" + Water + "口");
                } else
                {
                    System.out.println("狗不够喝了,还剩" + Water + "口");
                    return;
                }


            } else if (name.equals("cat"))
            {
                if (Water >= 1)
                {
                    System.out.println("猫喝了1口");
                    Water -= 1;
                    System.out.println("还剩" + Water + "口");
                } else
                {
                    System.out.println("猫不够喝了,还剩" + Water + "口");
                    return;
                }

            }
            try
            {
                Thread.sleep(2000);
            } catch (Exception e)
            {
            }

        }
    }
}

文章作者: LHL
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LHL !
评论
  目录