第七部分 线程间通信
来源:互联网 发布:西安黑马程序员学校 编辑:程序博客网 时间:2024/06/06 01:04
线程间通信
我们所掌握的线程通信手段还只限于主线程通过唤醒,中断机制向子线程发出信号,或者在通过创建子线程时候向构造方法传入数据,以及设置子线程的公有属性。但是仅凭这些事难以胜任要求的。
在多线程开发领域,线程与线程之间需要交换信息。这是一种普遍存在的需求。并不仅限于主线程和子线程之间。子线程和子线程之间也有可能需要交换信息。
线程之间能够方便的基于共享地址空间实现通信,这本身。便是多线程应用程序的一大优势,因为进程之间是不能互访对方的地址空间的。在进程之间传递信息只能采用类似于远程调用的手段。
本文主要讲在线程之间实现二进制信息和字符串的传输。
传递二进制信息
利用java.io.PipedOutputStream和java.io.PipedInputStream可以实现线程之间的二进制信息传输。PipedOutputStream是OutputStream直接子类,而.PipedInputStream是InputStream直接子类。
与OutputStream和InputStream的重要区别在于:PipedOutputStream拥有一个允许指定输入管道流的构造方法,而PipedInputStream拥有一个允许指定输出管道流的构造方法。
下面例子就是线程之间二进制信息传递【CommunicationByPipeBytes】
运行结果如下:
传递字符信息
利用java.io.PipedWriter和java.io.PipedReader在线程之间传输字符信息。与上文的类似。
下面给出一个例子【CommunicationByPipeCharacters】
运行结果如下:
- 第七部分 线程间通信
- 第七部分 线程间通信
- 1.7.ARM裸机第七部分-串口通信详解
- 第七章 进程间通信
- 第七章 Future,Promise and async()——线程通信
- 线程同步--线程间通信
- 线程同步--线程间通信
- JAVASE线程---线程间通信
- JAVA线程-线程间通信
- 线程3:线程间通信
- 线程与线程间通信
- 线程间通信
- c#线程间通信
- VC 线程间通信
- 线程间通信 ManualResetEvent
- java 线程间通信
- android线程间通信
- VC 线程间通信
- Oracle中INT、FLOAT、NUMBER区别
- linux 进程相关简介
- 可恶的sql2005起动参数 -T4808
- web.xml不认taglib标签的解决方法
- 编程语言电子书下载
- 第七部分 线程间通信
- 嵌入式Linux教程根文件系统Ramdisk的制作过程
- Windows窗体的.Net框架绘图技术
- java中判断socket服务器端是否断开连接
- VMware中安装FreeBSD启动X后键盘鼠标没反应
- 培训(20100907-20110117)已结束
- C语言获取系统时间的几种方式
- 根据拼音首字母进行过滤的combobox
- 让你的照片效果更给力:80 +颜色变更Photoshop动作