2013-07-25 3 views
1

Я пытаюсь выполнить тестирование класса, содержащего ThreadLocal, и хочу, чтобы тесты не влияли друг на друга, запустив новый поток в каждом тесте. Однако они все еще делают, и я не понимаю, почему.Идентификатор потока Java не меняется

@Test 
public void testThread() { 
    System.out.println(Thread.currentThread().getId()); 
    new Thread(){ 
     @Override 
     public void run(){ 
      System.out.println(Thread.currentThread().getId()); 
     } 
    }.run(); 
} 

Выход:

1 
1 

Может кто-то объяснить, почему идентификаторы такие же, даже если новый поток запускается?

ответ

11

Вы должны вызвать метод запуска в потоке, а не метод запуска. Если вы вызываете run, вы запускаете его в том же потоке.

+0

Ahh, конечно. Благодаря! –

1

попытаться изменить

}.run(); 

с

}.start(); 
Смежные вопросы