池技術是典型的享元模式。
頻繁使用new Thread來創建線程的方式並不太好。因為每次new Thread新建和銷毀對象性能較差,線程缺乏統一管理。好在java提供了線程池,它能夠有效的管理、調度線程,避免過多的資源消耗。優點如下:
重用存在的線程,減少對象創建、銷毀的開銷。
可有效控制最大並發線程數,提高系統資源的使用率,同時避免過多資源競爭,避免堵塞。
提供定時執行、定期執行、單線程、並發控制等功能。
線程池原理簡單的解釋就是會創建多個線程並且進行管理,提交給線程的任務會被線程池指派給其中的線程進行執行,通過線程池的統一調度、管理線程池的統一調度、管理使得多線程的使用更簡單高效。
線程池負責管理工作線程,包含一個等待執行的任務隊列。線程池的任務隊列是一個Runnable集合,工作線程負責從任務隊列中取出並執行Runnable對象。
任務隊列一般就是BlockingQueue。
更多關於java並發的知識會在以後的博客中作為重點專題來講解,這裡暫時寫這麼多。
URL:http://www.bianceng.cn/Programming/Java/201608/50353.htm