前言
停更了一段时间,是去海康实习去了,最近要准备秋招,继续学习内核有关的知识。
前几篇我们看了进程间的通信,御三家:共享内存、消息队列、信号量。差信号量没写,为啥不写,因为这次要说的线程里也有信号量,我们先看看这个信号量,再回头去看进程里的信号量。
进程与线程
几乎所有的嵌入式笔试和面试题都会问到:进程和线程有什么区别?
学过操作系统的同学可能很快就回答上,然鹅对于博主这样的废废,第一次听到这样的问题着实不知道答案,回去搜,网上给出的答案大概是:
进程是资源分配的基本单位;
线程是CPU调度的基本单位。
死记硬背吧,容易忘,还容易窜词。真要记住,还是得理解!
- 为什么要用线程?
前面我们学过用进程创建子进程,还学过进程间通信,按理说,用多进程就能实现同时处理多个任务,现在又来了个线程,这不是多此一举吗?
其实从20世纪60年代提出进程的概念之后,使得多个程序可以实现并发执行(单CPU中),改善了资源的利用效率,提高了系统的吞吐量。(并发:理解为看着像是好多任务同时进行,下面会讲)
这时,还没有linux线程这个说法,人们用进程</