netstat -nlp |grep 8080 把前一条命令的输出作为后一条命令的输入mkfifo testecho "this is a pipe" > test//// 写数据cat < test // 读数据单向传输
缺点 :效率低下,a 进程给 b 进程传输数据,只能等待 b 进程取了数据之后 a 进程才能返回。
缺点 :如果 a 进程发送的数据占的内存比较大,并且两个进程之间的通信特别频繁的话,消息队列模型就不大适合了。因为 a 发送的数据很大的话,意味发送消息(拷贝)这个过程需要花很多时间来读内存
问题:多进程竞争内存,类似线程安全
信号量的本质就是一个计数器,用来实现进程之间的互斥与同步。例如信号量的初始值是 1,然后 a 进程来访问内存1的时候,我们就把信号量的值设为 0,然后进程b 也要来访问内存1的时候,看到信号量的值为 0 就知道已经有进程在访问内存1了,这个时候进程 b 就会访问不了内存1。所以说,信号量也是进程之间的一种通信方式。
两个相隔几千里的进程能够进行通信吗,能,用得就是socket