MyThread thr1 = new MyThread("线程A") ;
MyThread thr2 = new MyThread("线程B") ;
---此处创-建Thread类的子类对象就相当于创建一个新线程
thr1.run() ; //为什么运行到这里的时候先是main运行???
thr2.run() ;
解释:main是主线程,原因:java虚拟机启动的时候有一个进程java.exe,该进程至少有一个线程负责java程序的运行,而这个线程运行的代码存在于main中,它就是主线程;
Thread子类对象.run();仅仅是对象调用方法,新创建的线程并没有运行,所以会在主线程main中按顺序执行
thr1.start() ; //运行到这里才是线程A、B的运行
thr2.start() ;
这里的start()才把刚才新创建的两个线程thr1、thr2开启,并分别执行两个线程的run()
|
|