gpt4 book ai didi

java - BufferedReader.lines() 方法在 Windows 上锁定

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:32 27 4
gpt4 key购买 nike

我有调用 BufferedReader.lines() 的代码。

EIPLogManager2.getServerLogger().info("Got header row: " + headerRow); //TODO delete this

List<String> allBatches = reader.lines()
.skip(forkCount > 0 ? forkCount * forkSize : 0)
.limit(transactionsRemaining.get() * forkSize)
.collect(Collectors.toList());

EIPLogManager2.getServerLogger().info("Got all batches. Size: " + allBatches.size()); //TODO delete this

让我解释一下这段代码的行为方式:

  1. 在我的 Mac 上运行它。工作完美。

  2. 在 Windows 上运行它。标题行日志条目会打印出来,但“获取所有批处理”日志条目永远不会打印出来。在直播过程中似乎卡住了。

transactionsRemaining.get() 调用是对 AtomicInteger 的调用。

我不知道为什么 Windows 上会发生这种情况。这个不成立。我在 JRE 8 和 JRE 11 中看到过这种行为。

最佳答案

好吧,我是傻了。因此 forkSize 和 transactionsRemaining 变量是由用户输入设置的。用户已将 transactionsRemaining 设置为 1,000,000,000,因此 limit() 上的数学运算产生的值大于 Integer.MAX_VALUE。然后抛出一个 IllegalArgumentException,我想我没有任何东西向我报告该异常。

问题现已解决。

关于java - BufferedReader.lines() 方法在 Windows 上锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53564700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com