`

PipedStream 多线程使用方式

 
阅读更多

管道流多用于多任务之间的通信

 

 

一、Sender

 

 

package test.pipstream;

import java.io.*;

public class Sender extends Thread
{
    PipedOutputStream out = new PipedOutputStream();

    public PipedOutputStream getOut()
    {
        return out;
    }

    public void run()
    {
        String str = "Hello,receiver   !   I`m   sender/n";
        
        try
        {
            out.write(str.getBytes());
            out.close();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 

 

二、Receiver

 

 

package test.pipstream;

import java.io.*;

public class Receiver extends Thread
{
    PipedInputStream in = new PipedInputStream();

    public PipedInputStream getIn()
    {
        return in;
    }

    public void run()
    {
        byte[] buf = new byte[1024];
        try
        {
            int len = in.read(buf);
            System.out.println("the   following   is   from   sender:/n" + new String(buf, 0, len));
            in.close();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 

 

三、多线程实现, main

 

 

 

package test.pipstream;

import java.io.*;

class TestPiped
{
    public static void main(String[] args)
    {
        Sender s = new Sender();
        Receiver r = new Receiver();
        
        PipedOutputStream out = s.getOut();
        PipedInputStream in = r.getIn();
        
        try
        {
            in.connect(out);
            s.start();
            r.start();
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
 

 

分享到:
评论

相关推荐

    分布式架构第十六单元-试题及答案 (2).pdf

    10. 多线程通信:为了实现线程间的通信,可以使用PipedStream,这是一种特殊的流,能够将数据从一个线程传递到另一个线程。 11. 数据结构:栈是一种“先进后出”(FILO)的数据结构,而队列则是“先进先出”(FIFO...

    Java选择题分析 (1).pdf

    7. **多线程**:Java支持多线程编程,可以通过继承`Thread`类或实现`Runnable`接口来创建线程。多线程允许程序同时执行多个任务,提高了程序的并发性能。 8. **GUI组件和布局管理器**:在Java的图形用户界面(GUI)...

    java期末复习题详解

    10. 多线程通信:PipedStream(管道流)用于线程间通信,选项D正确。 11. 字节码文件:Java源代码编译后生成.class文件,选项B正确。 12. 表达式计算:在Java中,表达式`y+=z--/++x`先计算`z--`和`++x`(后置递减...

    java流实例.rar

    `PipedInputStream`和`PipedOutputStream`组合使用,可以实现数据的管道传输,使得一个线程的数据输出可以作为另一个线程的数据输入,这种机制在多线程编程中很有用。 在“lesson7”这个文件中,我们可以期待看到...

    Java选择题剖析.pdf

    Java提供了多种I/O流,如DataStream用于对象序列化,FileStream处理文件操作,BufferedStream提高读写效率,而PipedStream则用于进程间通信,例如在多线程环境下传递数据。 在事件监听方面,不同的组件需要实现相应...

    JAVA常用类库课件

    5. **多线程**:Java的并发编程是通过`java.lang.Thread`和`java.util.concurrent`包实现的。`ExecutorService`、`Future`、`Callable`等接口和类简化了多线程的管理和任务执行。 6. **网络编程**:`java.net`包...

    2021-2022计算机二级等级考试试题及答案No.9609.docx

    5. 线程通信:Java中,线程间的通信可以通过管道流(PipedStream)实现。 6. 查询设计:在数据库应用中,查询设计视图允许用户组合多个表或查询。正确答案是B,意味着可以添加数据库表或查询。 7. 数据库模式:外...

    第十二章输入输出流-java程序设计ppt讲义.ppt

    管道流(PipedStream)是Java中的一种特殊流,它允许数据在不同的线程之间传递,实现数据的同步。例如,`PipedInputStream`和`PipedOutputStream`可以连接起来,使得一个线程写入的数据可以被另一个线程读取。 文件...

    华中科技大学JAVA考前复习资料

    - **特点**:线程安全,因此在多线程环境中不需要额外同步。 2. **Hashtable:** - **描述**:`Hashtable` 是 Java 中最早的键值对映射容器之一。 - **应用场景**:适用于需要快速查找数据的情况,例如作为查找...

    疯狂Java讲义源码(第三部分)

    8. **管道流PipedStream**:允许线程间的数据通信。 ### 第10章:异常处理 异常处理是Java程序中不可或缺的部分,本章内容涵盖: 1. **异常的分类**:区分了检查性异常(Checked Exception)和运行时异常...

    java输入输出流 流式输入与输出

    PipedStream允许两个线程间通过管道进行数据传输。 7. 文件复制示例 下面是一个使用Java I/O流进行文件复制的例子: ```java try { FileInputStream fis = new FileInputStream("source.txt"); FileOutputStream ...

    2021-2022计算机二级等级考试试题及答案No.12622.docx

    13. Java中,管道流(PipedStream)可以实现线程间通信。 14. Java整型常量不能以078开头,因为这代表八进制数,而八进制中不包含8。 15. 文本框没有显示滚动条,可能是MultiLine属性设为了False,不允许多行文本...

Global site tag (gtag.js) - Google Analytics