Erhöhen Sie die Anzahl der geöffneten Dateihandles oder Dateideskriptoren pro Prozess.
Sie können den Befehl ulimit -a
verwenden, um herauszufinden, wie viele offene Dateizugriffsnummern pro Prozess zulässig sind.
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2048
virtual memory (kbytes, -v) unlimited
Sie können sehen, dass, offene Dateien (-n) 1024, die nur 1024 offene Datei bedeutet Griffe pro Prozess zulässig ist. Wenn Ihr Java-Programm dieses Limit überschreitet, wird Fehler ausgelöst.
Siehe diese Themen I/O exception (java.net.SocketException) und java.net.SocketException: Too many open files.
Öffnen Sie diese Datei 5000 mal? Das ist ein schlechter Ansatz. Sie können Ihre Werte nur einmal laden und einige Beanshell-Logik erstellen, um diese Werte zu verwenden, wie Sie benötigen ... –
Nein, nur einmal. CSV enthält 5000 E-Mail-Werte. – Anonymous