我的应用程序通过10个线程进行连续磁盘i / o。 cpu配置文件非常高,大约100%,我打算将它变成一个独立的编写器线程。
此外,我在考虑是否可以维护缓存写入缓存,因此不必持续打开流。有没有人在这个
中看到问题但我不确定在哪里关闭作家。其次,如果作家没有关闭就会出现问题。
由于
答案 0 :(得分:0)
如果你经常给作家写短篇小说,打开一个新作家可能确实是浪费时间。需要注意的一个问题是,如果保持流打开,则尝试写入同一文件的其他线程可能会失败。从FileOutputStream文档:
Some platforms, in particular, allow a file to be opened for writing by only one FileOutputStream (or other file-writing object) at a time.
另外,请确保将结束语句放在finally
子句中。
答案 1 :(得分:0)
IO本身不太可能导致CPU负载。
将字符串从Java的内部表示转换为UTF8,ISO-Latin-1或您正在使用的任何编码时所涉及的字符编码转换会导致CPU负载。
然而,每分钟10000行不是那么多。每秒只有大约7000个字符(对于40个字符行)。或者每个线程是10000行?