平湖公司做网站, l设计是做什么的,温州专业微网站制作多少钱,湖州市住房和城乡建设局网站何为线程#xff1a;
线程是程序中负责执行的单位#xff0c;它可以被看作是进程的一部分#xff0c;是进程的子任务。线程与进程的区别在于#xff0c;进程是一个资源单位#xff0c;而线程是进程的一部分#xff0c;它只有栈这个独立的资源#xff0c;其他资源如代码…何为线程
线程是程序中负责执行的单位它可以被看作是进程的一部分是进程的子任务。线程与进程的区别在于进程是一个资源单位而线程是进程的一部分它只有栈这个独立的资源其他资源如代码段、数据段、堆、环境变量表等都是共享的。一个进程至少有一个线程主线程可以有多个线程。线程可以通过同步方式如pthread_join函数等待或异步方式不与主线程有关无法被等待来执行
线程其实是进程的一个执行流
我们过去的进程认为是内核数据结构进程代码与数据 将这些的组合叫做进程但是线程其实也是这样的组合结构
但是在linux中我们认为线程其实也就是多个PCB共享除PCB以外的进程数据结构代码数据。 整个红框中的数据结构的集合我们叫做进程。如果进程只有一个PCB我们称之为单执行流进程
拥有多个PCB数据结构的进程我们称之为多执行流进程。 在linux操作系统中我们并没有为线程独立开新的数据结构而是复用了进程PCB数据块模拟线程。做到了一种复用逻辑所以其实我们linux操作系统避免有线程的概念。
所以我们将进程线程统称为轻量级进程。
进程内的线程的pid相同应为处于同一进程内但是他们的tid不同线程id
先写个代码 运行函数 所有线程的pid都是相同的说明了他们确实处于同一进程内 ps -L选项查看线程
PID进程id
LWP轻量级进程id号
多个线程PID相同LWP号不同确实创建了多个线程而LWP与PID相同的线程我们称之为主线程
线程与线程之间
在同一个进程中的线程也是有着独立与共享的分别
线程独立拥有 线程独立最重要的就是一组寄存器与栈。
一组寄存器是对上下文数据的保存在轻量级进程调度的时候保证不会出错
栈是函数栈帧保存该线程的工作环境与上级函数。 结论
线程是CPU调度的基本单位。
进程是承担分配系统资源的基本实体单位