2

私はJavaでマルチスレッドに取り組んでおり、ここに1つのスレッドを作成しました。コードは次のとおりです。

class SampleThread extends Thread
    {
        int time;
        String name;
        boolean autocall;
        public SampleThread(int time, String name)
        {
            this.time = time;
            this.name = name;
        }

          public void run()
          { 
              try{
                  time = time +1;
                  updateView(time, name);
                  //sleep(3000);
              }catch(Exception e)
              {
                  e.printStackTrace();
              }
            //this.stop();
          }     
    }

今、私はこれを達成する方法を3秒ごとにこのスレッドを実行したいですか?

4

2 に答える 2

5

このようにしないことをお勧めします。パッケージ内の新しいクラス(まあ、それほど新しくはありません) 、特にScheduledThreadPoolExecutorを見てください。 java.util.concurrent

于 2012-10-22T10:30:50.567 に答える
1

新しい実装にはJava.util.Concurrentを使用します。JDK1.4以下を使用している場合は、次のアプローチを使用します。

boolean isRunning = true;
public void run() {
        do {
           try {
                System.out.println("do what you want to do it here");
                Thread.sleep(3000l);
            } catch ( InterruptedException ie) {
               ie.printStackTrace();
           } catch (RunTimeException rte) {
               isRunning  = false; // terminate here if you dont expect a run time exception... 
           }
        } while ( isRunning );
    }
于 2012-10-22T11:09:33.877 に答える