问一:进程和线程间通讯方式?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18657175/article/details/89735850

操作系统层面的进程间通讯

①管道

存在于内存中,进程可以对它进行读写,提供流控机制,保证进程的正确读写(管道为空读阻塞,管道为满写阻塞)

②消息队列

类似于管道,但不止能够传输字节流,没有缓冲区大小限制。同时独立于进程,进程终止时消息队列及其内容不会被删除,实现消息随机读取

③套接字(socket)

可用于不同机器间的进程通信(即网络间进程通信)

④信号量(Semaphore)

一个用以实现进程间同步和互斥的计数器,常作为一种锁机制

⑤共享内存(最快)

多个进程共享某块内存,进程通过对这块内存的读写实现通讯

操作系统层面线程间通讯:锁机制、信号量机制(Semaphore)、信号机制(Signal

Java层面的线程通讯

synchronized同步

②while轮询的方式

如CAS线程A不断地改变条件,线程B不停地通过while语句检测某个条件是否成立 ,从而实现了线程间的通信。但是这种方式会浪费CPU资源。

③wait/notify机制

④管道通信

如:使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信

英-[paIpt]

猜你喜欢

转载自blog.csdn.net/qq_18657175/article/details/89735850