这里我们有2个线程类对象t1和t2。
main()
{
//object creation
t1.start();
t2.start();
}
这在逻辑上意味着第一行将执行并完成,因此线程然后第2行将执行。那么任何人都可以解释java如何同时创建两个不同的线程。
答案 0 :(得分:4)
第一行将执行并完成......:这是真的。
...因此线程:不正确
你的结论不正确。调用t1.start()
只是关于当前线程执行main的正常函数调用。 t1.start()
将被执行,因此当前线程将等待调用完成。
但是,t1.start();
创建一个新的Thread并返回。现在这个线程独立于执行main的当前线程,并且可以在将来的任何时间执行。此外,当前线程不会等待创建的线程完成执行。这就解释了为什么你的结论是错误的。
答案 1 :(得分:0)
t1.start()
将启动一个将并行执行的新线程(不阻塞main),因此t2.start()
将并行启动另一个线程,或者t1'线程是否已完成。
这样,最后你将有三个并行运行的线程(t1,t2和主线程)。