前言
这篇文章是我尝试理解java多线程的第一篇文章,而Thread类无疑是java多线程的基石。
所以第一篇文章我要从这个类入手,包括这个类的定义和基本使用,为以后更深入的探讨多线程打下基础。
何为Thread
说起Thread,就不得不提所有人都见过的一道面试题
谈一谈进程和线程的区别。
为了更好的理解线程,这里我特别简单的说一下两者的区别:
进程,顾名思义,就是进行中的程序,是操作系统分配资源的基本单位。
线程,就是一个进程中,代码的不同执行路径,也是任务调度的基本单位。
那么重点来了:什么叫代码的不同执行路径呢?
我们见过的代码不是都只有一条执行路径吗?
当然不是啦!我们可以把代码的执行路径想象成公路,如果只有一条公路,那么所有代码都会按部就班的从上到下执行。如果一条公路太拥挤,我们就会去开设辅路,从而减轻主路的压力。这样,汽车就有多条路可以走,而代码也有了多条执行路径。
上面例子中的公路,就可以理解成线程。需要注意,主路和辅路是可以同时跑车的,就像java中的线程是可以同时运行的。
而java中的Thread类,就是对线程的抽象。
Thread类的使用
Thread的创建
java中,要创建一个线程大致有两个方法,分别是创建一个类,继承Thread类或者实现Runnable的接口。
public class ThreadDemo1 {
public static void main(String[] args) {
(new Thread1()).start()