理解多线程之前先了解下,进程与线程的概念。
进程:指正在运行的程序,具有一定的独立功能。更具体的说就是,指一个程序进入到内存运行,即变成了一个进程。
线程 :线程是 进程的一个执行单元,负责当前进程中程序的执行,一个进程中至少存在一个线程。即一个进程可以有多个线程,这样的应用程序也可称之为多线程应用程序。
总结下:一个程序运行后,至少有一个进程,但是一个进程中也可能包含多个线程。
现在,我们正式讲多线程概念之前,先讲讲单线程概念:
单线程:就是一个进程中只存在一个线程,其他线程想要运行,就必须要等前一个线程执行结束。就好比在一条马路上(仅仅允许一辆车通过),有许多辆车,后面的车必须等前面的车启动完成后,才可以前进。万一卡住了,那后面的车,只能痛苦地等待。可以想象这样的资源利用率不高
好了,现在多线程概念可以开始了,有了前面一堆的铺垫。
多线程:就是一个程序(进程)中有多个线程在同时执行。还是以前面的例子,接着说,后面的车子不想因为前面一辆车卡住而后面所有的车子都需要等待,因此未来解决这个问题,他们将这条马路扩展开来,多修了马路分支,即使前面堵车,后面车依然可以走另一条路线到达目的地。多辆车同时。
也许有人会问我们为什么要创建线程,创建线程的目的又是什么?
简单地说,就是 为了建立程序单独的执行路径,每一个线程就是是开了一条新的执行路径,让多部分代码实现同时执行。
多线程调用,进栈,都会为自己分配一个私有的栈内存。