首页 文章 精选 留言 我的

精选列表

搜索[自托管研发协作平台],共10000篇文章
优秀的个人博客,低调大师

线程间的协作(3)——管道输入/输出流

1.管道输入/输出流类 分为两类,字节流管道类(PipedInputStream/PipedOutputStream)和字符流管道类(PipedReader/PipedWriter)。这两个IO流实现了可以在不同的任务中对同一个管道进行读写操作,这个模型可以看成是“生产者消-费者模式”的变体,管道是一个阻塞队列。 import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.io.PipedReader; import java.io.PipedWriter; import java.util.Scanner; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class PipeIO { public static void main(String[] args) { ReadPipe read=new ReadPipe(); WritePipe write=new WritePipe(); ExecutorService exec=Executors.newCachedThreadPool(); try { write.getWriter().connect(read.getRead());;//必须将两个管道进行连接,然后才可进行线程间的数据交互 exec.execute(read); exec.execute(write); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class ReadPipe implements Runnable{ PipedReader read=new PipedReader(); public PipedReader getRead(){ return read; } @Override public void run() { try { while(true){ System.out.println("read:"+(char)read.read()+";");//当前线程从管道读取数据 } } catch (IOException e) { // TODO: handle exception } } } class WritePipe implements Runnable{ PipedWriter writer=new PipedWriter(); public PipedWriter getWriter(){ return writer; } @Override public void run() { try { while(true){ for(char a='A';a<='z';a++){ writer.write(a);//当前线程向管道输出数据 TimeUnit.SECONDS.sleep(2); } } } catch (IOException e) { // TODO: handle exception }catch (InterruptedException e) { // TODO: handle exception } } }

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册