Java线程id未更改
我试图对一个包含ThreadLocal的类进行单元测试,希望通过在每个测试中启动一个新线程,使测试不会相互影响。然而,他们仍然这样做,我不明白为什么Java线程id未更改,java,concurrency,Java,Concurrency,我试图对一个包含ThreadLocal的类进行单元测试,希望通过在每个测试中启动一个新线程,使测试不会相互影响。然而,他们仍然这样做,我不明白为什么 @Test public void testThread() { System.out.println(Thread.currentThread().getId()); new Thread(){ @Override public void run(){ System.out.
@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
有人能解释为什么即使启动了一个新线程,ID也是相同的吗?您应该在线程上调用start方法,而不是run方法。如果调用run,则是在同一线程中运行。应该在线程上调用start方法,而不是run方法。如果调用run,则在同一线程中运行它。尝试更改
}.run();
与
尝试改变
}.run();
与