首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

有一个关于线程的有关问题,搞不明白

2012-09-03 
有一个关于线程的问题,搞不明白小弟刚从国庆开始自学java,在多线程这一块内容时,有点小疑惑一下这段带码中

有一个关于线程的问题,搞不明白
小弟刚从国庆开始自学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()
如果主方法不在本类中,顺序相反
[解决办法]
探讨

引用:
Java code

tt.loop();//相当于调用类的方法

这个我理解,我不明白的是,main也应该是一种特殊的方法,是程序的入口,按照这样的说法,main线程是不是在程序启动的时候运行一次,为什么之后也会出现循环运行。

[解决办法]
LZ还是没理解线程
main是主线程,调用
Test3 tt=new Test3(); //生成一个线程对象
tt.setName("my");
tt.start();//启动该线程对象
那么此时就有2个线程,main线程和tt线程,tt线程会执行自己的run方法,而run方法会调用loop,所以就会有循环打印。

热点排行