1.进程有哪几种状态?
A:有五种状态,分别是
运行态:该进程正在执行。
就绪态:进程已经做好了准备,只要有机会就开始执行。
阻塞态(等待态):进程在某些事情发生前不能执行,等待阻塞进程的事件完成。
新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但是还没有加载到内存 中的进程。
退出态:操作系统从可执行进程组中释放出的进程,或由于自身或某种原因停止运行。
2.进程间通信的几种方式:
有名管道
无名管道
信号
消息队列
共享内存
socket套接字
具体的解释与区别:https://blog.csdn.net/weixin_42197191/article/details/82867154
3.进程与线程的区别和联系
(1)进程和线程的关系
①一个程序至少有一个进程,一个进程至少有一个线程,一个线程只能属于一个进程。线程是操作系统可识别的最小执行 和调度单位。
②资源分配给进程,同一进程的所有线程共享该进程的所有资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。
③线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
(2) 进程和线程的区别
①进程有自己的独立地址空间,线程没有
②进程是资源分配的最小单位,线程是CPU调度的最小单位
③线程之间的通信比较方便。同一进程下的线程共享数据(比如全局变量,静态变量)。而进程之间的通信只能通过进程通信的方式进行。
④进程上下文切换开销大,线程开销小
⑤一个进程挂掉了不会影响其他进程,而线程挂掉了会影响其他线程