不知何故,我无法在MacBook上打开超过10223个Java文件,而sysctl,launchd和ulimit的打开文件限制设置为65535,我可以从C程序打开62282个文件.
你知道Java是否有一些额外的限制,以及我如何改变它?
我用来测试的Java代码是:
import java.io.*;
import java.util.*;
class OpenFilesTest {
private static List<InputStream> streams = new ArrayList<InputStream>();
public static void main(String[] args) {
for (int i = 0; true; i++) {
FileInputStream f = null;
try {
f = new FileInputStream("/dev/null");
} catch (Throwable e) {
System.err.println(e.getMessage());
e.printStackTrace();
System.exit(1);
}
streams.add(f);
System.out.println("We have " + (i + 1) + " InputStream's for /dev/null");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个输出:
We have 1 InputStream's for /dev/null
We have 2 InputStream's for /dev/null
We …Run Code Online (Sandbox Code Playgroud)