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()方法.然后,您的代码将实例化一个测试线程并执行它.