幾乎在每個服務器應用程序中都會出現線程池和工作隊列問題。本文中,Brian Goetz 探討了線程池的動機、一些基本實現和調優技術以及一些要避免的常見危險。
為什麼要用線程池?
諸如 Web 服務器、數據庫服務器、文件服務器或郵件服務器之類的許多服務器應用程序都面向處理來自某些遠程來源的大量短小的任務。請求以某種方式到達服務器,這種方式可能是通過網絡協議(例如 HTTP、FTP 或 POP)、通過 JMS 隊列或者可能通過輪詢數據庫。不管請求如何到達,服務器應用程序中經常出現的情況是:單個任務處理的時間很短而請求的數目卻是巨大的。
請參閱
http://www-900.ibm.com/developerWorks/cn/Java/j-jtp0730/