0
    public Thread thread = new Thread();

    public void start() {
        running = true;
        thread.start();
    }

public void run() {

    while(running) {

        System.out.println("test");

        try {
            thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

私の問題は、プログラムが「テスト」を出力せず、「実行中」が真であるにもかかわらずループしているように見えないことです。run メソッドで継続的にループできる方法はありますか?

4

3 に答える 3

0

start()スレッドを開始するには、電話する必要があります。それ以外の場合runningは、true になることもthread.start()実行されることもありません。さて、あなたは次のようなことをするつもりだったと推測できます:

class MyTask implements Runnable
{
   boolean running = false;
   public void start() {
        running = true;
        new Thread(this).start();
    }

public void run() {

    while(running) {

        System.out.println("test");

        try {
            Thread.sleep(1000); 
              // you were doing thread.sleep()! sleep is a static function
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

  public static void main(String[] args)
  {
     new MyTask().start();
  }
}
于 2013-10-22T21:17:12.890 に答える