'daki Executors.newFixedThreadHavuz'da kullanılabilir işlemcileri ayarlayın Aynı anda birden çok isteği ele alması gereken bir HTTPServer yapıyorum.HTTPServer
böyle görünüyor inşa ne ana işlevi:
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyRequestDispatcher());
server.setExecutor(Executors.newCachedThreadPool());
server.start();
}
Şimdi üzerinde düşünüyorum nasıl oluşturulan iş parçacığı sayısını ilişkin bu
Executors.newCachedThreadPool()
çalışır. Oluşturulacak iş parçacığı sayısının sınırlı olmadığını okurken, aynı anda binlerce istek alırsam, binlerce iş parçacığı oluşturur mu?
Çalıştırılmakta olan makinede doğru şekilde işlenebilmesi için aynı anda oluşturulmuş iş parçacığı sayısını sınırlamayı düşünüyorum. Böyle bir şey üzerinde düşündü:
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors())
gol sisteminde mevcut işlemciler bağlı parçacığı yalnızca oluşturmak belirli sayıda etmektir.
Bu işe yarar mı?
Şimdiden teşekkürler!
İsterseniz, ancak iş parçacığı engelleyen herhangi bir şey yaparsa, en iyisi bu olmayabilir - daha fazla iş parçacığınız varsa, engellenenler beklerken işiniz olabilir. Önbelleğe benzer iş parçacığı havuzundaki iş parçacığı sayısına her zaman bir sınır koyabilirsiniz - "Executors.newCachedThreadPool()" ve "Executors.newFixedThreadPool (int)" uygulamasına bakın. –
Teşekkürler Andy! Onlara bir göz atacağım –