10月31日线程基础

发布时间 2023-10-31 10:59:45作者: songjunwan

线程基础

线程的概念

在操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程

线程顾名思义,就是一条流水线工作的过程,可以这么想一条流水线必须属于一个车间,一个车间的工作过程就是进程

如果把操作系统当成一个工厂

操作系统 == 工厂

进程 == 车间

线程 == 流水线(需要电源)

cpu == 电源

现在操作系统是一个工厂,该工厂有多条流水线,流水线工作需要电源,电源只有一个cpu(单核)

一个车间就是一个进程,一个车间至少一条流水线

创建一个进程,就是创建一个车间(申请空间,该空间内至少一条流水线)

结论就是每开启一个进程就会有一条线程

进程之间是竞争关系,线程之间是什么关系

进程与进程的关系是竞争关系

同样不同进程的线程之间是竞争关系,相反同一个进程里的线程是协作关系。

还有一个特别的地方不同进程的线程也可以是协作关系,但是需要用到进程间通信(IPC)机制如套数字、管道、消息队列、共享内存,但是会很麻烦

纠正概念

进程不是一个执行单位,进程是一个资源单位

同时进程之间的内存隔离空间是专门存这个进程运行过程当中一些相关的数据

然后进程申请空间,然后运行代码,那运行代码的过程我们就抽出来了叫线程的执行。

每个进程都自带一个线程,线程才是cpu上的执行单位,之前说切换,实际上是切换的是线程,cpu会在多个线程间切换

进程与线程的区别是什么?

线程 == 单指代码的执行过程

进程 ==资源的申请与销毁的过程

最大的区别在于:

1.内存共享与内存隔离

​ 1.同一个进程下的线程有内存共享

​ 2.同一个操作系统下的进程有内存隔离

2.创建速度:

​ 造线程的速度,要快于造进程