进程、线程的讲解
Linux的进程管理
进程是什么
1、linux下存在process和thread这两种操作系统基本的概念
process是进程
thread是线程
计算机的核心是CPU,承担机器的计算任务,这就好比是一座工厂,时时刻刻都在运行,加工
2、假如这个功能,电力有限,一次只能提供电力给一个车间使用,那某一个车间在干活的时候,其他车间都得停下来
(可以理解为CPU一次只能处理一个任务)
3、进程的概念是什么?
进程就是linux系统上的一个任务资源单位
进程就好比是一个工厂的车间,一个工厂可能有多个车间,每一个车间代表CPU正在处理的任务,某一个时刻,CPU总是在运行一个进程,其他进程处于非运行的状态
4、在一个车间内,想要完成某一项工作,必须得有很多个工人,工人才是实实在在干活的人员,并且多个工人,协同完成这个任务。每一个车间内的工人,都可以理解为linux.系统的进程中的工作的线程。
车间=========进程
车间内的工人====进程内的线程
5、车间内是有存放空间的,可以理解为11ux的进程单位,是有存储空间的,在进程的空间内,线程共享这个资源
6、车间内的小房间,容量大小个不同,有的小房间可以容下多个工人(某一块内存数据可以被多个线程同时使用)有的小房间只能容得下一个工人(某一块进程内的内存数据,只能给一个线程使用)
好比,进程内有一个线程正在使用一块内存数据,其他线程必须等待这个线程处理内存数据完毕,其他线程才能够使用内存
(车间内的某一个卫生间,被一个人占用了,其他人必须在外面等着,等他出来,才能使用……)
7、线程在使用内存数据的时候(好比某一个卫生间正在被一个工人使用中,但是另一个工人2,不愿意等待,直接破门而入,你是不是很烦……)
线程2不愿意等待,直接想去抢夺这一块内存数据,就很可能引发混乱,造成数据冲突,崩渍
这个时候,就得线程可以针对内存数据,加一把锁,这个时候,其他线程,看到了这个内存数据被上锁了,没辙,等着吧,等人家吧这个锁解开,才能够拥有内存数据的使用权。
如上的锁的概念,就是操作系统中,进线程中的互斥锁的概念(mutx,互斥锁,防止线程对内存数据抢夺的作用,防止多个线程同时读写同一块内存数据)
8、总结一下进程,线程的特点:
linux是一个多用户,多任务的操作系统,支持多进程,多线程
进程=======千活的车间
多进程(linux操作系统内,可以同时又多个进程在工作)====一个工厂内,可以同时又多个车间在同时千活
多线程(一个进程内,有多个工人在干活)
单线程(一个进程内,只有一个工人在干活,效率极其低下