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

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

①管道

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

②消息队列

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

③套接字(socket)

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

④信号量(Semaphore)

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

⑤共享内存(最快)

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

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

 

Java层面的线程通讯

synchronized同步

②while轮询的方式

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

③wait/notify机制

④管道通信

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

英-[paIpt]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值