多线程中调用run()方法和start()方法的简单区别

本文详细解析了Java中Thread类的start()与run()方法的区别,通过实例演示了两者在多线程执行上的不同表现,强调了正确使用start()方法来开启线程的重要性。

比如
   (1) Thread t1=new Thread();
t1.run();

(2) Thread t2=new Thread();
t2.start();
若调用start,则先执行主线程的,后执行子线程的;
若调用run,相当于函数调用,按照程序的顺序执行;
Thread的start才是正在开启线程,例如(2)就是开启了线程,因此先执行主线程,后执行子线程。而(1)用的是t.run(),更本没开启线程,只是调用了run()方法,所以一定是是按程序代码顺序输出。
如下具体例子
public static void main(String args[]) {
   Thread t = new Thread() {
            public void run() {
                pong();
            }
        };
        t.run();//如果是这行  则输出结果为:pingpong
t.start();//如果是这行  则输出结果为:pongping
        System.out.print("ping");
    }
    static void pong() {
        System.out.print("pong");
    }

转载于:https://my.oschina.net/8824/blog/3021906

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值