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