Java线程id未更改

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.

我试图对一个包含ThreadLocal的类进行单元测试,希望通过在每个测试中启动一个新线程,使测试不会相互影响。然而,他们仍然这样做,我不明白为什么

@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();