用两个线程玩猜数子游戏,第一一个线程负责随机给出1~100的一个整数,第二个线程负责猜出这个数。要求每当第二个线程给出自己的猜测后,第一个线程都会提示“猜小了”“猜大了”或“猜对了”。猜数之前,要求第二个线程要等待第一个线程设置好要猜测的数。
第一个线程设置好猜测数之后,两个线程还要互相等待,其原则是:第二个线程给出自己的猜测后,等待第一个线程给出提示;第一个线程给出提示后,等待第二个线程给出猜测,如此进行,直到第二个线程给出正确的猜测后,两个线程进人死亡状态。
这是课本实验要求,但是我看以了一下它给出的代码,真的真的是太迷了,课本直接把猜数和给数两个线程写到一个类里面了,我不知道这样的用意是什么。我猜可能是为什么方便传递参数,但是其实传递参数的方法有很多种,没必要这样做。课本代码:
package com.hj.Thread;
/**
* @author piki
*/
public class Number implements Runnable {
private final int SMALLER = -1;
private final int SUCCESS = 0;
private final int lARGER = 1;
private int realNumber, guessNumber, min = 0, max = 100, message = SMALLER;
private boolean pleaseGuess = false, isGiveNumber = false;
Thread giveNumberThread,guessNumberThread;
Number() {
giveNumberThread = new Thread(this);
guessNumberThread = new Thread(