gpt4 book ai didi

java - Files.createDirectory() 真的是非阻塞的吗?

转载 作者:行者123 更新时间:2023-12-02 10:33:58 25 4
gpt4 key购买 nike

我创建了这样的方法:

Flux<GetObjectResponse> download(String bucket, List<String> s3FileNames) {
String tmpDirName = UUID.randomUUID().toString();
Path dir = Paths.get(tmpDirName);
if (!Files.exists(dir)) {
try {
Files.createDirectory(dir);
} catch (IOException e) {
e.printStackTrace();
}
}

return Flux.fromIterable(s3FileNames)
.flatMap(filename -> Mono.just(GetObjectRequest.builder().bucket(bucket).key(filename).build()))
.flatMap(getObjectRequest -> Mono.fromFuture(s3AsyncClient.getObject(getObjectRequest, Paths.get(tmpDirName, getObjectRequest.key()))));
}

稍后我处理这个 react 流,但当我调用 Files.createDirectory(dir) 时,IntelliJ 给了我一个提示:

Inappropriate blocking method call less... (Ctrl+1) 
Inspection info: Reports thread-blocking method calls found in a code fragment where a thread should not be blocked

IntelliJ 正确吗? NIO 与文件互操作时是否会阻塞?

最佳答案

NIO2 之前的所有文件操作都是同步的,您可以假设该操作在方法返回时已完成。只有 TCP 套接字和文件观察器具有异步操作。

NIO2 添加了 AsynchronousFileChannel 但它不适用于目录。

文档:Java I/O, NIO, and NIO.2

关于java - Files.createDirectory() 真的是非阻塞的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53436520/

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