- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个输入流来自黑盒(比如 B)。来自这个流的所有消息都是序列化的二进制数据,每条消息都以一个四字节的 int 开头。其中大部分用于记录数据并每天 24 小时运行。我使用 readInt() 方法读取了这四个字节。现在,主线程偶尔会因 EOFException 退出并导致程序崩溃。
经过研究,我发现它发生在 readInt() 时输入流中少于四个字节的情况下。我的猜测是缓冲区在连续读取之间的填充速度不够快。我正在考虑的一些可能的解决方案包括在读取之前检查 available() (考虑到数据量会消耗太多周期)或在发生异常时重新启动(听起来像是糟糕的编程)。如果我能阻止使用 readInt(),那将是最好的方法,我认为。我查看了 readInt() 的实现,但它再次归结为使用 read() 进行阻塞。
有人知道更好的解决方案吗?
最佳答案
调用层次结构中的任何阻塞调用都被“绑定(bind)”以使链上的所有调用都阻塞,因为这两个调用都是同一执行线程的一部分。 DataInputStream
的 readInt
方法对底层输入流的 read
方法进行了四次调用,只要没有数据,它肯定会阻塞可用因此您担心“缓冲区填充速度不够快”似乎不合逻辑。
我遇到过这样的异常,在服务器进程终止或断开连接的情况下,在这种情况下,客户端最终读取 -1 并抛出异常。您是否在客户端/服务器代码中吞噬任何类型的异常?您的日志是否显示任何可疑内容?
关于java - 如何使 readInt() 阻塞输入字节流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887351/
我想执行一堆 WebRequest,但设置了可以同时启动的阈值。 我遇到了这个LimitedConcurrencyTaskScheduler example并尝试像这样使用它 scheduler =
初始情况 我正在开发 .NET Framework 4.0、C#、Winform 应用程序。应用程序将在 GridView 中列出(并测试)WebServiceOperations(目前有 60 个
我有一个具有 5 个读取和 5 个写入容量的发电机表。在这张表中,我有两条记录。 然后我决定通过一次推送大量写入(一次突发大约 4000 条记录)看看我会得到什么样的错误响应。蓝色的“已消耗”线直接越
我在限制作业和“挂起”或“失败”的作业方面遇到了麻烦。这基本上就是我正在尝试做的事情。 $allServers = Import-Csv "C:\temp\input.csv" $job = $all
我正在编写一个运行微 Controller 仿真器的C++程序。运行模拟器的线程在这样的循环中这样做: while(should_run) { simulator->RunSingleClockC
我有这个简单的代码,它: 创建 IObservable 采样半秒 使用 ThreadPool 调度程序订阅它 使用 SynchronizationContext 观察它 代码如下: private v
我正在尝试翻译一些 C# 代码,它一次创建 N 个线程并在每个线程中运行一个函数。 我有两个问题: -如何限制一次N个线程? -当我在我的主要方法中引用静态整数 FastestMemory 和 Slo
我有一个splitpane我的 React 项目中的组件,在调整 Pane 大小时将对其宽度使用react并更改内容。拆分 Pane 组件具有以下事件监听器... componentDidMo
使用 urllib2 时是否可以轻松限制 kbps?如果是,如果您能指导我使用任何代码示例或资源,我们将不胜感激。 最佳答案 urllib 模块中有urlretrieve(url, filename=
使用 urllib2 时是否可以轻松限制 kbps?如果是,如果您能指导我使用任何代码示例或资源,我们将不胜感激。 最佳答案 urllib 模块中有urlretrieve(url, filename=
我正在为 Android Phone 构建应用程序,但遇到了一些奇怪的“节流”。我相信这是因为正在调用信号量来停止应用程序正在做的任何事情来处理手机中的其他内容。虽然我不是积极的。 我很好奇是否有一种
我使用 Charles (4.0.2) 作为代理服务器来测试我的移动应用程序,它依赖于 WKWebView 内部的 WebSockets。我正在尝试模拟一种情况,在这种情况下,用户会短暂地体验到他们的
我有一个 request-promise向 API 发出请求的函数。我受此 API 的速率限制,并且不断收到错误消息: Exceeded 2 calls per second for api clie
我正在使用网络服务发送 100 个 http 帖子。但是,该服务每秒只允许 5 个。我想知道 usleep 命令是否是执行此操作的最佳方法。例如: foreach($JSONarray['DATABA
我在随机时间以高频率接收数据对象,并且需要使用这些更新 JavaFX GUI。但是,我不想用大量的可运行对象填充 javafx 事件队列(我使用 Platform.RunLater)。 我一直在思考如
假设我有一个即时消息应用程序,每次收到消息时它都会发出哔声。我想 debounce 哔哔声,但我想在第一条消息到达时播放哔哔声,而不是为后续消息播放(在时间跨度内,比如 2 秒)。 另一个示例可能是:
所以我现在有: App.html import { debounce } from 'lodash' export default { data () { na
我将 Highstock.js 更新到 1.3 并注意到 afterSetExtemes 事件在每次拖动事件时触发,而不是 dragend/mouseup。我正在通过 ajax 更新主要系列,但现在这
我已经在我的 pod 的所有容器上设置了 CPU 和 Memory Requests=Limits,以使其符合保证服务质量类的资格。现在,查看过去 6 小时同一 Pod 的这些 CPU 使用率和 CP
我将 Highstock.js 更新到 1.3 并注意到 afterSetExtemes 事件在每次拖动事件时触发,而不是 dragend/mouseup。我正在通过 ajax 更新主要系列,但现在这
我是一名优秀的程序员,十分优秀!