-
线程:
在OS中,每个进程都有相应的地址空间和一个控制线程,但是更多的情况下要求在同一地址空间下拥有多个线程并发执行,因此线程被引入操作系统。 -
为什么引入线程:
1、线程相比进程来说,更加的轻量,所以线程的创建和销毁的代价变得更小。
2、线程提高了性能,虽然线程宏观上是并行的,但微观上却是串行。从CPU角度线程并无法提升性能,但如果某些线程涉及到等待资源(比如IO,等待输入,大量计算)时,多线程允许进程中的其它线程继续执行而不是整个进程被阻塞,因此提高了CPU的利用率,从这个角度会提升性能(进程有自己独立的内存地址空间(用来存放程序正文和数据以及其他资源,比如打开的文件等地址空间),而多个线程拥有共享同一个地址空间和所有可用数据的能力。)。
3、在多CPU或多核的情况下,使用线程不仅仅在宏观上并行,在微观上也是并行的(这也是性能上提高的提现)。 -
经典的线程模型(和线程,进程的区别联系):
1、进程模型基于两种独立的概念:资源分组处理与执行。
2、线程拥有自己的程序计数器、寄存器、堆栈(为了保存各自的执行历史),状态(如下)它们共享同样的全局变量。进程用于把资源集中到一起:包括内存地址空间,程序,数据等,将这些以进程的形式组织起来可以使得操作系统管理这些资源更为容易。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210509152703282.png