线程通信利用java IO中的内部管道(Pipe),可以实现字节,字符信息的传输
二进制信息传输
package communication;
//线程通信,实现二进制传输
import java.io.PipedOutputStream;
import java.io.PipedInputStream;
import java.io.IOException;
public class CommunicationByPipeBytes {
static PipedOutputStream pos = null;
static PipedInputStream pis = null;
public static void main(String[] args) throws IOException {
pos = new PipedOutputStream();
pis = new PipedInputStream(pos);
Thread thread1 = new Thread() {//一个线程写
public void run() {
try {
pos.write("hello".getBytes());
pos.flush();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
};
thread1.start();
Thread thread2 = new Thread() { //读
public void run() {
try {
byte[] bytes = new byte[pis.available()];
pis.read(bytes, 0, bytes.length);
System.out.println(new String(bytes));
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
};
thread2.start();
}
}
字符传输
package communication;
import java.io.PipedWriter;
import java.io.PipedReader;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.IOException;
//线程通信,实现字符传输
public class CommunicationByPipeCharacters
{
static PipedWriter pw=null;
static PipedReader pr=null;
static BufferedWriter bw=null;
static BufferedReader br=null;
public static void main(String[] args) throws IOException
{
pw=new PipedWriter();
pr=new PipedReader(pw);
bw=new BufferedWriter(pw);
br=new BufferedReader(pr);
Thread thread1=new Thread()
{
public void run()
{
try
{
bw.write("hello",0,"hello".length());
bw.newLine();
bw.flush();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
};
thread1.start();
Thread thread2=new Thread()
{
public void run()
{
try
{
System.out.println(br.readLine());
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
}
};
thread2.start();
}
}
分享到:
相关推荐
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/759473
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/765024
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/759635
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/765052
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/764901
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/759558
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/758765
NULL 博文链接:https://hnzhoujunmei.iteye.com/blog/768806
微信开发平台开发工具 JDK jdk 6.0 jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008
jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-windows-x64安装包 jdk-7u80-...
java6.0文档chm版,分成三部分,分别为JDK6.0+中文文档-lytim24.part1.rar、JDK6.0+中文文档-lytim24.part2.rar、JDK6.0+中文文档-lytim24.part3.rar
开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8u121-windows-i586开发工具 jdk-8...
jdk7 jdk-7u80-linux-x64 网盘下载
这个是安装开发工具java jdk 有很多用途
jdk-11.0.6_windowsjdk-11.0.6_windowsjdk-11.0.6_windowsjdk-11.0.6_windowsjdk-11.0.6_windowsjdk-11.0.6_windowsjdk-11.0.6_windows
JDK版本:JDK-7u80-windows-x64版本,即为jdk1.7,此版本会自动安装JRE(Java的一个运行环境).
java-jdk1.8-8u361-all-jdk-win-linux 该压缩包中包含jdk1.8-8u361下windows版本和linux版本,其包含快速安装包和对应的jdk压缩包版本,具体内容如下: jdk-8u361-linux-aarch64.rpm jdk-8u361-linux-i586.rpm jdk-8...
jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-windows-x64jdk-8u131-...
jdk7 jdk-7u80-windows-x64 网盘下载
jdk-7u80-windows-x64.zip