Jawadok dla Runtime.availableProcessors()
w Javie 1.6 jest uroczo niespecyficzny. Czy chodzi tylko o konfigurację sprzętu, czy też o obciążenie? Czy jest wystarczająco inteligentny, aby nie dać się zwieść hiperwentylacji? Czy respektuje ograniczony zestaw procesorów za pomocą polecenia linux taskset
?Runtime.availableProcessors: co zamierza powrócić?
Mogę dodać jeden punkt danych: na komputerze z 12 rdzeniami i hyperthreading, Runtime.availableProcessors() rzeczywiście zwraca 24, co nie jest dobrą liczbą do określenia liczby wątków, które mają zostać uruchomione. Maszyna najwyraźniej nie była martwa, więc nie mogła równie dobrze spoglądać na ładunek.
Fakt, że dokumentacja wyraźnie mówi o tym, że jego wartość może ulec zmianie, sprawia, że jest mało prawdopodobne, aby patrzył tylko na konfigurację sprzętową. Domyślam się, że zwraca liczbę wątków Java, które mogą być uruchomione równolegle. – biziclop
Oracle/Sun napisało "optymistyczny" dokument w przeszłości. Zgadzam się co do implikacji, ale łowię fakty. – bmargulies