gpt4 book ai didi

java多个线程同时将随机字节写入文件[只需要建议]

转载 作者:行者123 更新时间:2023-12-01 09:17:34 24 4
gpt4 key购买 nike

我正在用 java 编写一个简单的基准测试来测试并行化。该程序总共生成 1000 个随机字节并将它们写入二进制文件。它使用不同数量的线程来并行化字节生成和写入磁盘,并测量每个线程数的整个过程的执行时间。

该程序将整个执行过程分割给指定数量的线程 - 生成字节数组将这些字节写入文件。

我的问题是,我需要在最后有一个二进制文件。我需要关于如何最好地使每个线程将其垃圾字节写入同一个文件的建议。请记住,我根本不在乎它们最终的顺序。到目前为止我有三个想法:

1) 我是否应该让每个线程创建一个 RandomAccessFile 实例,每个线程引用磁盘上的同一个空文件,并让每个线程以不重叠的方式从不同位置开始写入文件?这似乎是真正并行磁盘写入的最佳方式。

2) 我可以向每个线程传递对某种缓冲流对象的引用,并让每个线程将其字节数组发送到该流中吗?有没有一种方法可以创建一个对象,该对象仅监听字节并立即按照接收字节的顺序将它们写入文件?我担心让单个对象收集所有字节并不能真正代表并行磁盘写入。

3)我应该让每个线程将其字节写入自己的文件,然后将其文件“合并”到主文件中吗?

感谢您的宝贵时间!我不需要详细的代码示例,只是想在我从事此工作时获得一些建议,为我指明正确的方向。

最佳答案

创建FileOutputStream,获取对应的FileChannel并使用 ByteBuffers 写入数据.

关于java多个线程同时将随机字节写入文件[只需要建议],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433635/

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