1. 进程与进程通信:
进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源组成。多进程/多线程是Windows系统的一个基本特征。
常见的通信方式:
1. 管道 pipo:管道是一种半双工通信方式,数据只能单向流动,且只能在有亲缘关系的进程间使用(父子进程);
2. 命名管道FIFO:也是半双工通信方式,允许无亲缘关系的进程间通信;
3. 消息队列:是由消息队列的链表存放在内核中,并由消息队列标识符标识。克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区受限等缺点;
4. 共享内存:就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,共享内存最快的是IPC方式,是针对其他进程间通信方式运行效率低而专门设计的;
5. 信号量:信号量是一个计数器,可以控制多个进程对共享资源的访问,它作为一种锁机制,防止某一进程在访问资源时,其他进程也访问该资源。因此主要作为进程间以及同一进程内不同线程之间的同步手段;
6. 套接字:套接口也是一种进程间通信机制;
7. 信号:信号是一种比较复杂的通信方式,用于通知接收进程某一事件已经发生。
2. 线程同步的方式:互斥锁和信号量;
3. 多线程:多线程就是多条执行信息流“同时”执行,且他们之间互不干扰;
线程通信:多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作,就是多个线程在操作同一份数据时,避免对同一变量的争夺。
线程同步机制:事件、信号量、互斥量、临界区。
并发:是指同一时刻只能有一条指令(一个进程或一个线程)运行,但是由于CPU轮转执行的效率很高,在宏观上看就有多条指令同时执行的效果。
并行:就是在同一时刻,有多条指令在同一处理机上同时执行。