相关疑难解决方法(0)

' - >'在Java中做什么?

我正在看一些java教程,并不确定' - >'做了什么,在谷歌上找不到任何关于它的东西.

这是我看到的一些使用它的代码:

myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));
Run Code Online (Sandbox Code Playgroud)

java java-8

7
推荐指数
1
解决办法
1228
查看次数

杀死java中的无限循环

我正在使用第三方库来处理大量数据集.这个过程偶尔会进入一个无限循环(或被阻止 - 不知道为什么也不能进入代码).我想在一段时间之后杀死它并继续下一个案例.一个简单的例子是:

for (Object data : dataList) {
    Object result = TheirLibrary.processData(data);
    store(result);
}
Run Code Online (Sandbox Code Playgroud)

processData通常最多需要1秒钟.我想设置一个计时器,在10秒之后杀死processData()

编辑我会很感激代码片段(我没有使用线程).Executor方法看起来很有用但我不太清楚如何开始.此外,更常规方法的伪代码对我来说太笼统了.

@Steven Schlansker - 建议除非第三方应用程序预期中断,否则它将无效.再次详述和示例将被理解

编辑我从同事Sam Adams那里得到了我想要的精确解决方案,我将其作为答案.它比其他答案更详细,但我会给他们两个投票.我将Sam的标记为已批准的答案

java kill infinite-loop

5
推荐指数
3
解决办法
3978
查看次数

Java 中的异步 File.copy

Java中有没有一种方法可以以异步方式将一个文件复制到另一个文件中?我试图找到类似于C# 中的Stream.CopyToAsync的东西。

我想要实现的是从互联网下载一系列约 40 个文件,这是我为每个文件想到的最好的结果:

CompletableFuture.allOf(myFiles.stream()
        .map(file -> CompletableFuture.supplyAsync(() -> syncDownloadFile(file)))
        .toArray(CompletableFuture[]::class))
    .then(ignored -> doSomethingAfterAllDownloadsAreComplete());
Run Code Online (Sandbox Code Playgroud)

哪里syncDownloadFile

private void syncDownloadFile(MyFile file) {
    try (InputStream is = file.mySourceUrl.openStream()) {
        long actualSize = Files.copy(is, file.myDestinationNIOPath);
        // size validation here
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这意味着我在任务执行器内部有一些阻塞调用,我想避免这种情况,所以我不会一次阻塞太多执行器。

我不确定 C# 方法内部是否执行相同的操作(我的意思是,必须有东西下载该文件,对吗?)。

有更好的方法来实现这一点吗?

java nio completable-future

5
推荐指数
1
解决办法
1698
查看次数

标签 统计

java ×3

completable-future ×1

infinite-loop ×1

java-8 ×1

kill ×1

nio ×1