进程/线程间的知识概念整理

1.线程和进程的概念,区别、以及什么时候用线程什么时候用进程?
类比于火车和车厢
进程是操作系统资源分配的最小单元,是程序动态执行的过程
线程是cpu任务调度的最小单元,是进程的一个执行流,一个进程可以由多个线程组成
区别:
(1).进程有自己的独立地址空间(每启动一个进程,系统会为它分配空间)
线程则共享进程中的数据,使用相同的地址空间
因此,切换线程和创建线程的资源开销都比进程小很多
所以涉及频繁的切换时,应该使用线程。
(2).线程之间通信更方便,同一进程下的线程共享全局变量,静态变量等数据
而进程之间的通信则需要IPC对象进行
(在火车上乘客很难换到另一个火车上
在同一辆火车上,不同车厢则容易换)
所以如何处理好多线程间的同步和互斥是难点,进程则相对于更健壮
多线程中只要有一个线程死掉,则整个进程都跟着死掉
(一列火车着火另一列不会受到影响,一列火车上的一个车厢着火将影响到所有车厢)
而一个进程死掉则不会另一个进程造成影响,因为进程有自己的独立地址空间
(3).每个独立的进程有一个程序运行的入口,顺序执行序列,但线程不能独立执行
(一列火车可以单独运行,但一个车厢不能单独运行)

(4).线程执行开销小,但是不利于资源的管理和保护进程反之


所以对资源的管理和保护要求高,不限制开销和效率时,用多进程
要求效率高,频繁切换,资源的保护管理要求不是很高时,用多线程

线程是一个轻量级的进程,好比与火车和车厢的关系

2.进程间状态?

进程分为五个状态
创建状态:从程序上启动就进入创建状态,完成资源分配
就绪状态:创建完成后,进程已经准备好,但还未获得处理器资源,无法运行
运行状态:获得CPU资源被系统调度开始运行,时间片用完后回到就绪状态
阻塞状态:在运行状态期间,进行了阻塞的操作(耗时的IO操作),进入阻塞状态,操作完成后进入就绪态
终止状态:进程结束或被系统终止

 

3.线程中互斥和同步的概念?

类比与火车上的厕所,倘若你是加锁,那么当你走到厕所门口发现门是锁的,资源被占用。

而同步时使用的信号是一种资源,需要申请和释放,等于严格规定了上厕所的时间。

4.进程间为什么要通信?有几种方式?
进程虽然时操作系统资源分配的最小空间,但它不是孤立的
它需要信息的传递和状态的交互
进程间通信有六种方式:(UNIX下的管道和信号量)(BSD下的消息队列共享内存和信号灯)(套接字)

5.查进程用什么命令?

ps命令

-a 查看所有

-u 以用户的格式显示

-x 显示后台运行参数

-ef 以全格式显示进程所有信息,包括父进程Pid,创建人,创建时间,进程号

6.列举5个操作进程的命令?

(1)ps 查看系统进程快照

ps -ef

ps -aux 除了ef的功能外,还可以显示进程的状态

(2)top 查看进程动态信息

(3)jobs 查看后台运行的进程(后台作业)

(4)nice 改变程序执行的优先权

(5)kill 杀死pid

7.编译程序什么时候会用多任务

为了解决负载均衡问题,充分利用CPU资源,提高CPU的使用率

8.什么是原子操作?
原子操作就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch).
原子性:如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。这种特性就叫原子性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值