鉴于上次惨痛的教训,我决定重新认识下java。昨天没事儿的时候把《疯狂java讲义》(李刚著)中关于线程通信的部分例子敲了一遍。coding~
代码:
package thread.pipe;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PipedReader;
public class ReaderThread extends Thread {
private PipedReader pr;
private BufferedReader br;
public ReaderThread() {
}
public ReaderThread(PipedReader pr) {
this.pr = pr;
this.br = new BufferedReader(pr);
}
public void run() {
String buf = null;
try {
while ((buf = br.readLine()) != null) {
System.out.println(buf);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package thread.pipe;
import java.io.IOException;
import java.io.PipedWriter;
public class WriterThread extends Thread {
String[] books = new String[] { "php", "java", "C++", "ajax" };
private PipedWriter pw;
public WriterThread() {
}
public WriterThread(PipedWriter pw) {
this.pw = pw;
}
public void run() {
try {
for (int i = 0; i < 100; i++) {
pw.write(books[i % 4]+":"+i+ "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (pw != null)
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package thread.pipe;
import java.io.PipedReader;
import java.io.PipedWriter;
public class Test {
public static void main(String[] args) {
PipedWriter pw = null;
PipedReader pr = null;
try {
pw=new PipedWriter();
pr=new PipedReader();
pr.connect(pw);
new WriterThread(pw).start();
new ReaderThread(pr).start();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
PipedWriter、PipedReader做connect链接完成线程之间通信。
分享到:
相关推荐
服务器通信学习
多线程编程学习的心得体会,仅供参考,如有偏差出,还请不吝赐教。
多线程通信读写文件代码,根据其他的代码文档修改,用于学习多线程通信。
利用 Socket 实现多线程通信,是学习 Socket 编程的好文档
vc++ 多线程教程---线程通信--利用事件对象,线程同步--使用信号量,线程同步--使用互斥量,线程同步--使用临界区
1. Java多线程学习(一)Java多...6. Java多线程学习(五)线程间通信知识点补充 7. Java多线程学习(六)Lock锁的使用 8. Java多线程学习(七)并发编程中一些问题 9. Java多线程学习(八)线程池与Executor 框架
c#串口通信类,实现了多线程技术,和大家共同进步,共同学习
通过多线程的方式实现了UDP收发数据 可以快速学习UDP通讯原理应进行实际应用
采用全局变量方式实现多线程的通信:用一个全局变量来控制时间显示线程的时间显示格式,比较简单,仅供参考和学习,欢迎大家多多交流。
自己刚刚弄SOCKET,网上的很多资源都是FORM的。我自己做了一个命令台的,服务器端长时间侦听端口,当一个客户端连上后,就起一个线程来接受数据,并发送信息。...刚学习,很多注释都没弄掉,别介意。
多进程和多线程是系统执行多任务机制的重要手段,多任务同时进行自然少不了相互之间的通信工作。下面先将线程间的通信方式总结一下,便于大家对比学习。
该文档是笔者在学习李刚老师《Java疯狂讲义》中有关多线程的用法而总结出来的笔记,其中主要的内容包括线程创建和启动、线程的生命周期、控制线程、线程同步、线程通信线程池等基本内容。对Java多线程有详细的介绍。
多线程编程系列。使用事件进行线程间的通讯。一个不错的实例代码。
结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践 Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,...
上位机的串口通信例子,定时发送接收都没问题。 使用CWinthread实现多线程发送和接收。 刚接触MFC多线程学习的新手会进一步理解多线程。
c#学习资料,多线程通信,让你深入学习c#通信编程
多线程串口通信 源代码 学习和实践的标本
该文档是笔者在学习李刚老师《Java疯狂讲义》中有关多线程的用法而总结出来的笔记,其中主要的内容包括线程创建和启动、线程的生命周期、控制线程、线程同步、线程通信线程池等基本内容。对Java多线程有详细的介绍。...
使用boost库做服务器端,多线程通信;VC++配置好BOOST,程序可以正常跑,例子来源网上,主要在于BOOST学习体验