Я написал класс пула потоков со ссылкой http://www.informit.com/articles/article.aspx?p=30483&seqNum=5
Среда: Windows7 4 cp
Запустил мою программу с 70000 Thread в Windows 7, под JDK 1.5 она прошла успешно. Не используются аргументы vm.
Тот же код, который я пытался выполнить с 5,000 Thread в Linux Enterprise Edition, которая находится под Virtual Box с 4 ГБ базовой памяти. с аргументами vm -xms512m -xmx1024m. Выполняет до 2156 потоков и выдает исключение
Исключение в потоке "main" java.lang.OutOfMemoryError: невозможно создать новый собственный поток
на java.lang.Thread.start0 (собственный метод)
на java.lang.Thread.start (Thread.java:597)
в testthreadpool.ThreadPool. (ThreadPool.java:38)
at testthreadpool.TestThreadPool.main (TestThreadPool.java:16)
Но тот же код отлично работает в Windows7.
Могу ли я знать, почему возникает эта ошибка. Требуется ли для этого Java-кода 1 ГБ памяти для запуска Just 5000 потоков? ...
Мое действительное требование - держать ThreadPool с 10 000 рабочих потоков.