Thread的run和start

class TestThread extends Thread{

  public void run(){
    for(int i=0;i<20;i++){
      System.out.println(Thread.currentThread().getName()+"---is running");
    }
   }
}
public class Thread01 {
  public static void main(String[] args) {
    TestThread tt1 = new TestThread();
    TestThread tt2 = new TestThread();
//   tt1.run();
//   tt2.run();
    tt1.start();
    tt2.start();
//   new TestThread().start();

  }

}

线程Thread中start()和run()的方法。

start()是实现并发的重点,run()不过是调用类TestThread中的run()方法。

使用start()时,结果为:

Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
Thread-0---is running
Thread-1---is running
当调用run()时,结果为:

main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running
main---is running

启动一个新的线程不是直接调用子类的run方法,而是调用thread类的start方法,thread类的start方法将产生一个新的线程,并在新的线程上运行该thread类对象中的run方法。由于线程的代码段是在run方法中,那么该方法执行完以后,线程也就相应结束了。

转载于:https://www.cnblogs.com/nathanieltian/p/3993866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值