Inter-Process Communication,进程间通信)。进程间通信是指两个进程的数据之间产生交互.
进程通信方式:
- 1 共享内存存储方式
共享内存存储方式是在内存中分配一片空间作为共享存储区。需要进行通信的进程把共享存储区附加到自己的地址空间中,然后就像的操作一样对共享区中的数据进行读或写操作。如果用户不需要某个共享存储区,则可以把它取消。通过对共享存储区的访问,相关进程间就可以传输大量数据。
2.管道文件方式
3.消息缓冲通信
消息缓冲通信方法的设计思想:由系统管理一组缓冲区,其中每个缓冲区可以存放一个消息(即一组信息)。当进程要发送消息时,先要向
系统申请一个缓冲区,然后把消息 写进去,接着把 缓冲区连到接收进程的一个消息队列中,并用V操作通知接收者,接收进程可以在适当的时候从消息队列中取出消息,并释放该缓冲区。
4.套接字 socket
socket也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同主机之间的进程通信。
线程间通信的方式:
临界区:通过多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问;
互斥量Synchronized/Lock:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问
信号量Semphare:为控制具有有限数量的用户资源而设计的,它允许多个线程在同一时刻去访问同一个资源,但一般需要限制同一时刻访问此资源的最大线程数目。
事件(信号),Wait/Notify:通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作