2011-08-02 5 views
0

私はスレッドで非常に簡単なプログラムを持っています。スレッドがあるコードの後で(つまりプログラムの途中で)開始したいとします。これをどのように達成するのですか?main()でスレッドを作成する方法

コード(コードは下記)の後にmain()でスレッドを開始しようとすると、エラーが表示されます。非静的変数。これは静的コンテキストから参照できません。

public class Main { 

    public class MyThread implements Runnable { 

     public void run() { 
     //do something 
     } 
    } 

    Thread t1 = new Thread (new MyThread()); 

    public static void main(String[] args) { 
     // some code 
     t1.start(); 
     //some code 
    } 
} 

は、誰もがpleseはどのようにエラーを訂正するために教えてもらえます。

ご協力いただきありがとうございます。

答えて

4

あなたmainの外Thread変数にアクセスする必要がない場合は、正しい解決策は、単にローカル変数を使用することです:

public static void main(String[] args) { 
    // some code 
    Thread t1 = new Thread (new MyThread()); 
    t1.start(); 
    //some code 
} 

はそうしないと、をいただきたいのいずれかをする必要がありますt1static作るか(すなわち、あなたのmainクラスのインスタンスを作成しmainからコール方法であなたの実際の作業を行う)あなたのコードは、非静的メソッド内で実行してみましょう。

4

静的関数なので、メイン関数内からスレッドをインスタンス化したいと思います。

public class Main { 

public class MyThread implements Runnable { 

    public void run() { 
    //do something 
    } 
} 
    public static void main(String[] args) { 
     Thread t1 = new Thread (new MyThread()); 

     // some code 
     t1.start(); 
     //some code 

    } 
} 
関連する問題