进程通信方式&进程IO控制方式

进程间通讯 (Inter-Process Communication, IPC) 是指在不同进程之间传输数据或者信号的过程。常见的进程间通讯方式有以下几种:

  1. 管道 (pipe):管道是一种半双工的通讯方式,一端写入数据,另一端读取数据,常用于父子进程或兄弟进程间通讯。

  2. 命名管道 (named pipe):命名管道是一种特殊文件,可以在不同进程之间共享,常用于进程之间的通讯。

  3. 信号 (signal):信号是异步通讯方式,进程可以向另一个进程发送信号,并在另一个进程中注册信号处理函数。

  4. 共享内存 (shared memory):共享内存是一种高效的通讯方式,多个进程可以同时访问同一块内存空间,需要使用信号量等机制进行同步。

  5. 消息队列 (message queue):消息队列是一种基于消息的通讯方式,进程可以向队列中发送消息,并从队列中读取消息。

  6. 信号量 (semaphore):信号量是一种同步机制,可以用于控制进程对共享资源的访问。进程可以对信号量进行加锁和解锁操作。

  7. 套接字 (socket):套接字是一种网络通讯方式,不仅可以在同一台机器上的不同进程之间通信,还可以在不同机器上的进程之间通信。

不同的进程间通讯方式各有优缺点,应该根据实际情况选择合适的通讯方式。

 

进程 I/O (Input/Output) 控制方式指的是控制进程输入输出的方式,常见的进程 I/O 控制方式有以下几种:

  1. 阻塞式 I/O:在进行 I/O 操作时,进程会一直等待,直到 I/O 操作完成为止。阻塞式 I/O 简单易用,但是会造成进程的阻塞,影响程序的并发性能。

  2. 非阻塞式 I/O:在进行 I/O 操作时,进程会立即返回,无论 I/O 操作是否完成。非阻塞式 I/O 不会阻塞进程,但需要使用轮询等方式查询 I/O 操作是否完成,效率较低。

  3. I/O 多路复用:I/O 多路复用是一种高效的 I/O 控制方式,多个 I/O 操作可以同时注册到同一个多路复用器上,并且可以在同一线程中异步等待 I/O 操作完成。在数据准备好时,多路复用器会通知进程进行处理。

  4. 信号驱动式 I/O:进程可以将 I/O 操作和信号绑定,当 I/O 操作完成时,会触发相应的信号,进程可以通过信号处理函数获取 I/O 操作的结果。

  5. 异步 I/O:异步 I/O 是一种高级的 I/O 控制方式,不会阻塞进程,也不需要轮询或者其他等待方式,而是通过异步回调函数实现。异步 I/O 可以显著提高程序的并发性能和响应速度。

不同的进程 I/O 控制方式各有优缺点,应该根据实际情况选择合适的 I/O 控制方式。常用的 I/O 多路复用方式包括 select、poll 和 epoll 等。异步 I/O 方式也在越来越多的应用场景中被使用。

posted @ 2020-09-08 16:56  小龙虾爱大龙虾  阅读(199)  评论(0)    收藏  举报