有一个关于线程的问题,搞不明白
小弟刚从国庆开始自学java,在多线程这一块内容时,有点小疑惑
一下这段带码中,main线程运行后会调用自定义类的一个线程,那这个main方法写在这个test类的内部,为什么main线程没有for循环也会运行多次?我对这main运行的逻辑顺序搞不清楚。
Java code
public class Test3 extends Thread
{
public void run()
{
loop();
}
public void loop()
{
String name = Thread.currentThread().getName();
System.out.println(name+"--->>刚进入loop方法");
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(4000);
}
catch(InterruptedException X)
{
}
System.out.println("name="+name);
}
System.out.println(name+"离开");
}
public static void main(String[] args)
{
Test3 tt=new Test3();
tt.setName("my");
tt.start();
try
{
Thread.sleep(700);
}
catch(InterruptedException x)
{
}
tt.loop();
}
}
------解决方案--------------------如果是在自己的类里执行这个方法的话
先执行tt.loop()然后main通过tt.start()也执行loop()
如果主方法不在本类中,顺序相反
------解决方案--------------------
------解决方案--------------------LZ还是没理解线程
main是主线程,调用
Test3 tt=new Test3(); //生成一个线程对象
tt.setName("my");
tt.start();//启动该线程对象
那么此时就有2个线程,main线程和tt线程,tt线程会执行自己的run方法,而run方法会调用loop,所以就会有循环打印。