public synchronized void guessNUmber1(int count) { if (Thread.currentThread() == guessNumberThread1 && isGiveNumber1 == true) { while (pleaseGuess1 == false) try { wait(); } catch (InterruptedException ex) { } if (message1 == SMALLER) { min = guessNumber1; guessNumber1 = (min + max) / 2; System.out.println(Thread.currentThread().getName() + "第" + count + "次猜测,"); System.out.println(Thread.currentThread().getName() + "第" + count + "次猜这个数是:" + guessNumber1); } } else if (message1 == LARGER) { max = guessNumber1; guessNumber1 = (min + max) / 2; System.out.println(Thread.currentThread().getName() + "第" + count + "次猜测,"); System.out.println(Thread.currentThread().getName() + "第" + count + "次猜这个数是:" + guessNumber1); } if (realNumber1 > guessNumber1) { message1 = SMALLER; System.out.println(Thread.currentThread().getName() + "猜小了"); } else if (realNumber1 < guessNumber1) { message1 = LARGER; System.out.println(Thread.currentThread().getName() + "猜大了"); } pleaseGuess1 = false; }//这是第一个猜数字的线程
下面是设计要求
模拟三个线程猜数字,一个线程负责随机给出1-100之间的一个整数,另外两个线程负责猜测。要求每当一个线程给出自己的猜测后,第一个线程都会提示“猜小了”、“猜大了”或“猜对了”。猜数之前,要求后面二个线程要等待第一个线程设置好要猜的数。第一个线程设置好猜测数之后,三个线程还要互相等待,其原则是:后面二个线程给出自己的猜测后,等待第一个线程给出的提示;第一个线程给出提示后,等待后面二个线程给出猜测,如此进行,直到某个线程给出正确的猜测后,三个线程进入死亡状态。设计一个GUI界面。 |
首先界面不能处于忙碌状态,界面等待线程发来的消息,根据消息做出任何响应即可。