多线程--线程概念

Posted 李憨憨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程--线程概念相关的知识,希望对你有一定的参考价值。

一、线程概念

举个栗子:
有个零件加工工厂, 工厂中有一个或多个工人, 工人是干活的; 工厂是集体设备资源的载体.
进程就是工厂; 线程就是工人;
进程是系统进行资源分配的基本单元;线程是系统进行调度运行的基本单元;

线程就是进程中的一条执行流程,Linux下线程执行流程是通过pcb实现的,而一个进程中可以有多个线程(pcb),并且这些pcb共享了进程中的大部分资源,相较于传统pcb较为轻量化,因此Linux下的线程也被称作为轻量级进程。

在这里插入图片描述


在最早学习进程的时候,认为进程就是pcb是一个程序运行的动态描述,通过这个描述符操作系统实现程序运行调度以及管理。
但是在学习的线程的时候,才知道Linux下的pcb实际上是一个线程,是进程中的一条执行流程,一个进程中可以有多个pcb,这些pcb共享进程中的大部分资源,因此也被称作轻量级进程。
进程是资源分配的基本单元;线程是CPU调度运行的基本单元。

二、线程间的独有与共享

独有:标识符,栈,寄存器,信号屏蔽字,errno 共享:虚拟地址空间,IO信息,信号处理方式,工作路径 多进程与多线程进行多任务处理的优缺点:
 线程优点:
  1.线程间通信更加灵活(包括进程间通信方式在内还可以使用全变量或者函数传参来实现)
  2.线程的创建于销毁成本更低
  3.线程间的切换调度成本更低
 进程优点:稳定,健壮性高---主程序安全性要求高的场景-shell、服务器
多任务处理中,并不是进程或者线程越多越好。执行流太多,反而会增加切换调度的成本。
IO密集型程序:程序中大量进行IO操作
CPU密集型程序:程序中大量进行数据运算操作

以上是关于多线程--线程概念的主要内容,如果未能解决你的问题,请参考以下文章

Linux篇第十三篇——多线程(线程概念+线程控制)

Linux篇第十三篇——多线程(线程概念+线程控制)

线程概念和多线程模型

中央处理器-第七节2:硬件多线程的基本概念

ASP.NET WebForm中有多线程的概念吗?

多线程概念