java linuc进程间通信对比

编程技术  /  houtizong 发布于 3年前   62
读《unix网络编程第二卷进程通信》
1.管道
2.消息队列
3.信号量
4.共享内存
这些在java中怎么实现?
如果是管道,参考http://www.iteye.com/topic/156804,看下面代码,
注意把“注意这里!!!!!!!!”的i换成256实验一下效果
import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;public class CommunicateWhitPiping {public static void main(String[] args) {PipedOutputStream pos = new PipedOutputStream();PipedInputStream pis = new PipedInputStream();try {pos.connect(pis);//将管道输入流与输出流连接 此过程也可通过重载的构造函数来实现} catch (IOException e) {e.printStackTrace();}Producer p = new Producer(pos);//创建生产者线程Consumer c = new Consumer(pis);//创建消费者线程p.start();//启动线程c.start();}}class Producer extends Thread {//生产者线程(与一个管道输入流相关联)private PipedOutputStream pos;public Producer(PipedOutputStream pos) {this.pos = pos;}public void run() {int i = 99;//256,257,注意这里!!!!!!!!try {pos.write(i);} catch (IOException e) {e.printStackTrace();}}}class Consumer extends Thread {//消费者线程(与一个管道输入流相关联)private PipedInputStream pis;public Consumer(PipedInputStream pis) {this.pis = pis;}public void run() {try {System.out.println(pis.read());} catch (IOException e) {e.printStackTrace();}}}

如果是c里面
看unpv22e/pipe/mainpipe.c
#include    "unpipc.h"void    client(int, int), server(int, int);intmain(int argc, char **argv){    int     pipe1[2], pipe2[2];    pid_t   childpid;    Pipe(pipe1);    /* create two pipes */    Pipe(pipe2);    if ( (childpid = Fork()) == 0) {        /* child */        Close(pipe1[1]);        Close(pipe2[0]);        server(pipe1[0], pipe2[1]);        exit(0);    }        /* 4parent */    Close(pipe1[0]);    Close(pipe2[1]);    client(pipe2[0], pipe1[1]);    Waitpid(childpid, NULL, 0);     /* wait for child to terminate */    exit(0);}

-------------------------------------
共享内存参考http://coach.iteye.com/blog/738214

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客