gpt4 book ai didi

node.js - Node.js 中是否可以同时从两个线程写入文件?

转载 作者:行者123 更新时间:2023-12-03 08:35:19 28 4
gpt4 key购买 nike

我或多或少发现了这个问题asked elsewhere ,用不太清楚的语言,但答案是

"I doubt you have any reason to."

这看起来并不是一个有效的答案,考虑到它是否从根本上可能(很可能不可能),它将使我们能够更快地在并行线程中生成大型(100GB+)文件。现在,如果您的数据结构确实可以以这种并行方式编写,那么您可能只需在 16 个线程上编写 16 个不同的文件就可以了。这可能就是我要做的。

但出于好奇,假设我们真的非常希望将所有数据存储在一个文件中。可以多个

fs.createWriteStream(filePath)

从单独的线程调用并成功并行写入同一文件中的位置?

我在文档中找不到任何相关信息,尽管我怀疑答案是否定的。

最佳答案

您无法同时从两个单独的线程安全地追加到同一文件。每个线程都有自己的文件句柄和自己的写入位置,并且每个文件将数据写入的位置存在并发问题。

Can multiple fs.createWriteStream(filePath)be called from separate threads and successfully write to locations within the same file in parallel?

没有。你无法安全地做到这一点。每个线程都会遇到并发问题,以跟踪写入位置应设置的位置。您需要一些并发管理来对写入进行排序并跟踪每个写入的位置。

您可以只让一个线程执行所有写入操作,并让每个生成数据的线程将其数据发送到正在执行写入操作的一个线程,作为安全排序写入的一种方法。

关于node.js - Node.js 中是否可以同时从两个线程写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63981868/

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