みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

java Threadのsleepを途中で止める方

今、訓練校に通っていて課題をだされていますが、どうもうまく行きませんのでお知恵を拝借したく思います。


 java Threadのsleepを使用し、クイズの回答を10秒以内で答えるというものですが、 途中で入力をすると、次の問題の回答時間が異様に早くなり1秒ではなくなってしまいます。

 こういう場合、入力をすれば、runメソッドが終わるというプログラムはどうやって書けばいいのか教えて頂きたく思います。
どうぞよろしくお願いいたします。

<下記、threadの部分だけですが、パッケージを使用するという課題のため無理やり使っています。>

package pa;

public class CountTest extends Thread {
public void start() {
super.start();
}

public void run() {
for (int i=10; i >= 1; i--) {
try{
sleep(1000);
System.out.print("⇒" );

}catch(InterruptedException e){}
}
System.out.println("");
for (int i=1; i >= 1; i--) {
/}
System.out.println("Time up ");
System.out.println("");
System.out.println("1-4で答えを記入してください");
}

投稿日時 - 2012-08-09 11:06:09

QNo.7634827

すぐに回答ほしいです

質問者が選んだベストアンサー

スレッドが途中で止まれるように、
スレッドを操作させる為のフラグ(boolean型の変数)を用意してあげるのが良いでしょう。

クイズを出しているクラスは、スレッドを動かしたい時にスレッドのフラグにtrue、止めたい時にfalseを代入するように書いておき、

スレッド側は、フラグがfalseの時止まる、という処理を追記してあげれば良いと思います。


課題頑張ってください。

投稿日時 - 2012-08-09 15:13:20

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

役に立つか分かりませんが、こういう本もありますよ

http://www.hyuki.com/dp/dp2.html#contents

投稿日時 - 2012-08-09 16:00:49

あなたにオススメの質問