Java多线程系列---“基础篇”03之 Thread中start()和run()的区别
转自:https://www.cnblogs.com/skywang12345/p/3479083.html (含部分修改) 概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答。本章内容包括: start() 和 run()的区别说明 start() 和 run()的区别示例 start() 和 run()相关源码(基于JDK1.7.0_40) 一. start() 和 run()的区别说明 start() : 它的作用是 启动一个新线程 ,新线程会执行相应的run()方法。 start()不能被重复调用 (否则抛出异常)。 Mynote:runnable没有start方法。要启动,必须要start方法,因此runnable构造方法中需要和Thread来进行绑定。 run() : run()就和普通的成员方法一样, 可以被重复调用 。单独调用run()的话, 会在当前线程中执行run(), 而并 不会启动新线程 ! 下面以代码来进行说明。 class MyThread extends Thread{ public void run(){ ... } }; MyThread mythread = new MyThread(); mythread.start()会启动一个新线程,并在新线程中运行run()方法。 而mythread.run(