群里发的用管道通讯的例子,用过socket,但Pipe到没用过,记下来了

本文通过一个具体的Java程序示例介绍了如何使用Java的PipedInputStream和PipedOutputStream类实现线程间的通信。示例中创建了两个线程,一个用于写入数据到管道输出流,另一个从管道输入流读取数据。
摘要由CSDN通过智能技术生成

import java.io.*;
class Piped1{
        public static void main(String[] args)throws Exception{
                 PipedOutputStream pos=new PipedOutputStream();
                 PipedInputStream pis=new PipedInputStream();
                 try{
                       pos.connect(pis);
                       new Your(pos).start();
                       new MyThread(pis).start();
                   }catch(Exception e){
                      e.printStackTrace();
                   }


        }
}

class Your extends Thread{
     private PipedOutputStream pos;
 
     Your(PipedOutputStream pos){
            this.pos=pos;
     }
          
            public void run()
            {
                  try{
                     pos.write("www.java.sun.com".getBytes());
                     pos.close();
                  }catch(Exception e){
                     e.printStackTrace();
                  }
                
            } 
}
class  MyThread extends Thread{
         private PipedInputStream pis;
              
         MyThread(PipedInputStream pis){
              this.pis=pis;
         }

         public void run(){
              try{
                  byte[] buf=new byte[1024];
                  int len=pis.read(buf);
               //   System.out.println(new String(buf,0,len));
               System.out.println("HELLO");
              }catch(Exception e){
                  e.printStackTrace();
              }
   }     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值