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)
{
}
}
}
}