多线程技术底层原理:采用时间片轮转法实现多线程的并发执行,所谓并发就是宏观并行,微观串行;
线程的创建:
1.自定义类继承Thread类并重写
run
方法,创建该类的对象来调用start
方法;
2.自定义类实现
Runnable
接口并重写run
方法,创建该类的对象作为实参来构造Thread
类的对象,使用Thread类型的对象调用Strat
方法;
相关方法:
Thread() - 使用无参的方式构造对象。
Thread(Runnable target) - 根据参数指定的接口引用来构造对象。
void run() - 若构造线程对象时使用Runnable对象,则调用该方法时最终调用 Runnable对象指向的run方法;
- 若构造该线程对象时没有使用Runnable对象,则调用该方法时啥也不做
> void start() - 用于启动一个线程,Java虚拟机会自动调用该线程的run方法。它和main
方法的线程无关,都要执行完成:
原理分析
-a.执行main方法的线程叫做主线程,而执行run方法的线程叫做子线程。
-b.程序启动时只有主线程来执行main方法中的代码,当start方法调用成功之后,线程的个数由1个瞬间变成了2个,而新启动的线程去执行run方法的代码,而执行main的线程继续向下执行,两个线程各自独立运行互不影响,当run方法执行完毕后子线程结束,而当main方法执行完毕后主线程结束。
-c.主线程和子线程的先后执行次序没有明确的规定,取决于系统的调度算法。