进程和线程的区别
进程:是操作系统资源分配的基本单位,进程有独立的地址空间,一个进程当中可以用多个线程
线程:是操作系统任务调度的基本单位,没有独立的地址空间,但需要有满足任务调度的最基本的资源(保存现场,恢复现场),即栈,寄存器。一个进程里的多个线程可以共享该进程的所有资源。
进程间通信的方式有哪些
- 无名管道
- 有名管道
- 高级管道
- 消息队列
- 信号
- 信号量
- Socket
- 共享内存(最快)
线程间通信的方式有哪些
- 锁机制
- 互斥锁
- 信号
- 信号量
- 条件变量
- 管道
- 共享内存
产生死锁的四个必要条件
- 互斥:一个资源每次只能被一个进程使用
- 不可剥夺:进程已获得的资源,在末使用完之前,不能强行剥夺
- 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放
- 循环等待:若干进程之间形成─种头尾相接的循环等待资源关系