将创建多少个线程?

Jai*_*Das -4 java

public class ThreadTest extends Thread
{
    int i=0;

    public void run()
    {
        i=1;
    }

    public static void main(String... args)
    {
        ThreadTest tTest=new ThreadTest();
        tTest.start();

        System.out.println(tTest.i);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这有时打印1,有时打印0?在这个程序中会创建多少个线程?据我了解,这个程序中将创建2个线程.如果我错了,请纠正我.

jta*_*orn 10

你有竞争条件.有时主线程获胜,有时测试线程获胜.

程序中有2个线程,其中只有一个由程序实例化.主线程由jvm创建并正在执行该main()方法.然后,您的代码将实例化一个测试线程并执行它.