管道流多用于多任务之间的通信
一、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();
}
}
}
分享到:
相关推荐
10. 多线程通信:为了实现线程间的通信,可以使用PipedStream,这是一种特殊的流,能够将数据从一个线程传递到另一个线程。 11. 数据结构:栈是一种“先进后出”(FILO)的数据结构,而队列则是“先进先出”(FIFO...
7. **多线程**:Java支持多线程编程,可以通过继承`Thread`类或实现`Runnable`接口来创建线程。多线程允许程序同时执行多个任务,提高了程序的并发性能。 8. **GUI组件和布局管理器**:在Java的图形用户界面(GUI)...
10. 多线程通信:PipedStream(管道流)用于线程间通信,选项D正确。 11. 字节码文件:Java源代码编译后生成.class文件,选项B正确。 12. 表达式计算:在Java中,表达式`y+=z--/++x`先计算`z--`和`++x`(后置递减...
`PipedInputStream`和`PipedOutputStream`组合使用,可以实现数据的管道传输,使得一个线程的数据输出可以作为另一个线程的数据输入,这种机制在多线程编程中很有用。 在“lesson7”这个文件中,我们可以期待看到...
Java提供了多种I/O流,如DataStream用于对象序列化,FileStream处理文件操作,BufferedStream提高读写效率,而PipedStream则用于进程间通信,例如在多线程环境下传递数据。 在事件监听方面,不同的组件需要实现相应...
5. **多线程**:Java的并发编程是通过`java.lang.Thread`和`java.util.concurrent`包实现的。`ExecutorService`、`Future`、`Callable`等接口和类简化了多线程的管理和任务执行。 6. **网络编程**:`java.net`包...
5. 线程通信:Java中,线程间的通信可以通过管道流(PipedStream)实现。 6. 查询设计:在数据库应用中,查询设计视图允许用户组合多个表或查询。正确答案是B,意味着可以添加数据库表或查询。 7. 数据库模式:外...
管道流(PipedStream)是Java中的一种特殊流,它允许数据在不同的线程之间传递,实现数据的同步。例如,`PipedInputStream`和`PipedOutputStream`可以连接起来,使得一个线程写入的数据可以被另一个线程读取。 文件...
- **特点**:线程安全,因此在多线程环境中不需要额外同步。 2. **Hashtable:** - **描述**:`Hashtable` 是 Java 中最早的键值对映射容器之一。 - **应用场景**:适用于需要快速查找数据的情况,例如作为查找...
8. **管道流PipedStream**:允许线程间的数据通信。 ### 第10章:异常处理 异常处理是Java程序中不可或缺的部分,本章内容涵盖: 1. **异常的分类**:区分了检查性异常(Checked Exception)和运行时异常...
PipedStream允许两个线程间通过管道进行数据传输。 7. 文件复制示例 下面是一个使用Java I/O流进行文件复制的例子: ```java try { FileInputStream fis = new FileInputStream("source.txt"); FileOutputStream ...
13. Java中,管道流(PipedStream)可以实现线程间通信。 14. Java整型常量不能以078开头,因为这代表八进制数,而八进制中不包含8。 15. 文本框没有显示滚动条,可能是MultiLine属性设为了False,不允许多行文本...