操作系统层面的进程间通讯
①管道
存在于内存中,进程可以对它进行读写,提供流控机制,保证进程的正确读写(管道为空读阻塞,管道为满写阻塞)
②消息队列
类似于管道,但不止能够传输字节流,没有缓冲区大小限制。同时独立于进程,进程终止时消息队列及其内容不会被删除,实现消息随机读取
③套接字(socket)
可用于不同机器间的进程通信(即网络间进程通信)
④信号量(Semaphore)
一个用以实现进程间同步和互斥的计数器,常作为一种锁机制
⑤共享内存(最快)
多个进程共享某块内存,进程通过对这块内存的读写实现通讯
操作系统层面线程间通讯:锁机制、信号量机制(Semaphore)、信号机制(Signal)
Java层面的线程通讯
①synchronized同步
②while轮询的方式
如CAS线程A不断地改变条件,线程B不停地通过while语句检测某个条件是否成立 ,从而实现了线程间的通信。但是这种方式会浪费CPU资源。
③wait/notify机制
④管道通信
如:使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信
英-[paIpt]