Как создать Темы в main () - PullRequest
0 голосов
/ 02 августа 2011

У меня очень простая программа с потоками. Предположим, я хочу, чтобы поток начинался после некоторого кода (то есть в середине программы). Как мне этого добиться?

Когда я пытаюсь запустить поток в 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
    }
}

Может кто-нибудь, пожалуйста, скажите мне, как исправить ошибку.

Заранее спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Я думаю, что вы хотите создать экземпляр вашего потока из основной функции, так как это статическая функция.

 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

     }
 }
4 голосов
/ 02 августа 2011

Если вам не нужен доступ к переменной Thread за пределами вашего main, то правильным решением было бы просто использовать локальную переменную:

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

В противном случае вы бы или необходимо сделать t1 static или , чтобы ваш код работал внутри нестатического метода (т. Е. Создайте экземпляр вашего main класса и выполняйте свою фактическую работуметод, который вы вызываете из main).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...