今天写代码实现两个实时同步进程之间的通信,类似于生产者与消费者问题,一个线程产生数据,通过流输送到另一个线程。

下面说我刚刚犯的错误,希望大家引以为戒。

我用的 Java管道流(这个无所谓,重点是通讯流程)

写线程:

while (isRecording){int bufferReadSize = audioRecord.read(buffer, 0, buffersize);try {outstream.write(buffer, 0, bufferReadSize);} catch (IOException e) {e.printStackTrace();}}

读线程刚刚使用的错误代码是:

         while (in.available()>0){
<span style="white-space:pre">              </span>in.read(buffer);System.out.println(buffer);}

因为我错以为 in.available函数是一个阻塞函数。。

而正确写法应该是

         while (in.read(buffer)>0){System.out.println(buffer);}

或者

while (true){while(in.available()>0){in.read(buffer);}
}

好久没写代码了,刚刚犯得错误记录一下。大神请绕路

使用流进行通讯的一种可能犯的错误 (InputStream + OutputStream)相关推荐

  1. 史无前例!肝了30天,终于整出这份[分布式宝典:限流+缓存+通讯]

    无论学习还是备战面试跳槽,必啃限流(ZooKeeper+Nginx).缓存(MongoDB+memcached+Redis).通讯(ActiveMQ+Kafka+RabbitMQ)等三大分布式技术,而 ...

  2. React组件进阶--组件通讯介绍,组件的 props特点,组件通讯的三种方式子到父,父到子,兄弟到兄弟组件,Context,回顾练习

    1.组件通讯介绍 组件是独立且封闭的单元,默认情况下,只能使用组件自己的数据(state). 在组件化过程中,我们将一个完整的功能 拆分成多个组件,以更好的完成整个应用的功能. 而在这个过程中,多个组 ...

  3. webim 实现实时通讯的 4 种方式

    本文前半段主要节选自:WebSocket ,后半段总结和概括自沈剑大佬的两篇文章和文章评论http如何像tcp一样实时的收消息?.网页端收消息,究竟是推还是拉?,完整参考见文末. webim 是什么 ...

  4. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类

    字节流,字符流. 字节流继承于InputStream OutputStream, 字符流继承于InputStreamReader OutputStreamWriter. 在java.io包中还有许多其 ...

  5. java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

    字节流,字符流. 字节流继承于InputStream OutputStream, 字符流继承于InputStreamReader OutputStreamWriter. 在java.io包中还有许多其 ...

  6. 【干货】3种常见用户体验错误将扼杀好设计

    作为一个数字设计师,不可能同时满足所有人的诉求.客户和利益者有时会误解设计的过程.他们或许知道后端开发和网页的用户体验设计是两种不同的学科,所以,作为设计师,应该成为个无所不知的天才. 考虑到这一点, ...

  7. 在HTML中嵌入PHP代码,有以下几种方法,其中错误的是( )

    在HTML中嵌入PHP代码,有以下几种方法,其中错误的是( D) A.以"<?php开头,以"?>"结束,中间为PHP代码. B.以<script la ...

  8. flask使用第三方云通讯平台时,出现{'172001':'网络错误'}解决方法

    问题描述:flask使用第三方云通讯平台时,出现{'172001':'网络错误'} 解决方法: 在sms.py文件中添加如下代码 import ssl # 取消证书验证 ssl._create_def ...

  9. 网页瀑布流效果实现的几种方式

    前言 like a mountain that is in our path,wo cannot complain that it is there,we simply have to climb i ...

最新文章

  1. Java调优之jvm和线程的内存分析
  2. 实践 Network Policy - 每天5分钟玩转 Docker 容器技术(172)
  3. C++中基类的析构函数为什么要用virtual虚析构函数
  4. Redis内存使用优化与存储
  5. C/C++学习之路_七: 内存管理
  6. 【CodeForces - 260B 】Ancient Prophesy (暴力匹配,BF算法,日期字符串)
  7. java中的重量级与轻量级概念
  8. Windows上的svn仓库迁移(visualSVN)
  9. 安装cnpm (npm淘宝镜像)
  10. HTTP协议状态码详解(HTTP Status Code)(转)
  11. AbiWord 中Piece Table 数据结构的实现----AbiWord Documentation
  12. [Bzoj3262]陌上花开(CDQ分治树状数组||树套树)
  13. 2020mysql下载教程
  14. C++定义点和矩形求矩形面积周长
  15. Android 自定义锁屏的实现
  16. 软件工程第2次作业 | 结对项目-最长单词链
  17. JavaWeb之上传与下载
  18. 那些外贸老鸟们都在认真使用的8个实用小工具
  19. 项立刚:大陆为什么没有台积电
  20. 【愚公系列】2021年12月 网络工程-进制转换

热门文章

  1. 编程技术越来越被看中 编程到底是什么?赶紧看看!
  2. 单模光电转换器怎么接_单模光纤收发器怎么连接?
  3. 快速学习R语言的经验分享
  4. 公众号标题变迁史 - 你有没有被套路?
  5. 重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)
  6. php解析验证码,全面解析PHP验证码的实现原理 附php验证码小案例
  7. NOI入门级:基础算法 贪心法
  8. 1.4编程基础之逻辑表达式与条件分支 12 骑车与走路
  9. 使用php自动将文章标题或内容进行分词,添加和删除标签功能实例!
  10. java workthread_Java多线程基础(十)——Work Thread模式