(一)请分别简单说一说进程和线程以及它们的区别。
进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。
线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程可以有多
个线程,多个线程也可以并发执行如果你对进程或者线程不太熟悉。
建议阅读:进程与线程的一个简单解释。
(二)线程同步的方式有哪些?
互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可
以保证公共资源不会被多个线程同时访问。
信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。
经两位大大的指正,现已删除临界区。感谢:@真姬酱@安阳
如果你对线程同步的方式不太熟悉,建议阅读:线程同步的几种方式
(三)进程的通信方式有哪些?
主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET
管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe)
管道是一种半双工的通信方式,数据只能单项流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程
命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信
信号量是一个计数器,用来控制