- ベストアンサー
エラーも無いのにボールが動かない
- JAVA初心者の質問です。
- 以下のコードを書いたのですが、ボールが動かない問題に直面しています。
- エラーメッセージは表示されず、原因が分からず困っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
例えばですが、 booean move = true; というような変数を宣言し、 public void run(){ while(move){ .... .... if(終了条件に関する判定){ move = false; } } } などというようにし、 また、スレッドを動作させる必要がある場合には thr = new Thread(this); thr.start(); とスレッドの再起動をしましょう。
その他の回答 (2)
- zozy
- ベストアンサー率60% (20/33)
stopメソッドを使用してはいけないのは、安全性の問題があるからです。 スレッドでは、スレッド同士の衝突を回避するために、衝突するスレッドを待ち状態にします。 こうすることでスレッドは安全に動作します。 stopメソッドを使用するとそれまで、ロックされていたのが全て解除されます。 つまり、スレッド同士の衝突が起こり放題になるわけです。 銀行の振込みシステムの例 利用者NO 0 1 2 時 | | | 間 | | | ↓ | | | 入金5○ 入金10×入金20× No0以外待ち | | | stopを使うと 利用者NO 0 1 2 時 | | | 間 | | | ↓ | | | 入金5○ 入金10○入金20○ 全員同じ口座に振り込み | | | 2人ほど、損する
- osamuy
- ベストアンサー率42% (1231/2878)
(1)必要なパッケージがimportされてない。 (2)「inti」がスペルミス。 ――とか。
お礼
osamuy早速の回答有り難う御座います。 ところで、うまく動いたのですが、エラーではないのですが、thr.stop();の箇所(2箇所とも)で “メソッドstop()は型Threadで使用すべきではありません。”という警告が出ていますが、この意味が分かりません。 どのような意味でしょうか、宜しくお願いします。
お礼
zozyさん、回答有り難うございます 理由はわかりましたが、その場合の書き方は、thr.waitとか そのあとにStopの時間とかを書いてやるのでしょうか。 宜しくお願いします。