什么是线程,为什么要引入线程?
在很久以前,还没有引入进程,系统中各个程序只能串行执行
所以在那个时候,我们想一边运行音乐,一边运行QQ,显然是不可以实现的,在那个时候我们不可能边聊QQ,边听音乐
在之后,引入了进程之后,就可以实现边聊QQ,边听音乐这件事
在传统的进程定义中,进程是程序的一次执行
所以有的进程需要“同时”处理很多事情的,但是传统的进程只能串行地执行一系列程序
在传统的进程中,CPU会轮流的为各个进程服务,进程是程序执行流的最小单位
为了满足一个进程中能够宏观上同时做很多事情,人们又引入了“线程”机制,用来增加系统的并发度,系统的CPU的调度服务对象,不再是进程,而是进程当中的线程,每一个进程当中,可能会包含多个线程,然后CPU会轮流的用一定的算法轮流的为这些线程服务
这样的话同一个进程中被分为多个线程,如果用QQ视频聊天和QQ传送文件这两件事情想并发的运行的话,那么我们就可以把这两件事对应的处理程序,放到两个不同的线程下,那么这两个线程可以并发的执行,自然这两件事就可以并发的完成
所以在引入线程机制后,线程就成为了程序执行流的最小单位,在引入线程后,每一个进程可以有多个线程,并且这些线程可以有不同的代码,但这些代码都会并发的被CPU处理,然后并发的依次执行下去,这就是所谓的程序执行流的最小单位的意思
所谓的线程可以把它理解成一种“轻量级进程”,以前CPU服务的对象是进程,现在,线程是一个基本的CPU执行单元
引入线程机制后,有什么变化?
线程的属性