Dhe*_*shi 1 java memory multithreading query-optimization
我有一个250Mb的文件要读.应用程序是多线程的.如果我允许所有线程读取文件,则会发生内存不足.我内存不足错误.
为了避免它.我想在内存中只有一个String(从流中读取)的副本,我希望所有线程都使用它.
while (true) {
synchronized (buffer) {
num = is.read(buffer);
String str = new String(buffer, 0, num);
}
sendToPC(str);
}
Run Code Online (Sandbox Code Playgroud)
基本上我想在所有线程完成发送时只有一个字符串副本,我想读第二个字符串,依此类推.
为什么多线程?你只有一个磁盘,它只能这么快.几乎可以肯定,多线程它无济于事.任何依赖于在内存中存储整个文件的软件设计都是首先存在严重缺陷.
假设你定义了你的问题?
归档时间: |
|
查看次数: |
7057 次 |
最近记录: |