差異處
這裏顯示兩個版本的差異處。
java:effective_java:concurrency:prefer_executors_tasks_and_streams_to_threads [2023/06/25 09:48] |
java:effective_java:concurrency:prefer_executors_tasks_and_streams_to_threads [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | {{tag>java effective_java java_concurrency}} | ||
+ | ====== Effective Java - Prefer executors, tasks, and streams to threads ====== | ||
+ | ===== Introduction ===== | ||
+ | 這個Item的重點就是要你善用JDK內建的concurrency物件,而不要自己產生與控制thread。書中以JDK內建的Thread Pool ExecutorService來做說明, | ||
+ | - ExecutorService支援pool size的控制、工作生命週期的控制、pool的銷毀。 | ||
+ | - Executors提供不同類型的thread pool,單一thread的newSingleThreadExecutor、無大小限制但可能會讓你server爆掉的newCachedThreadPool、有大小限制的newFixedThreadPool、簡單排程的ScheduledThreadPoolExecutor等。 | ||
+ | - JDK將怎麼執行這件事情model為Runnable與Callable;Runnable屬於無回傳值的執行方法,Callable屬於有回傳值的執行方法。 | ||
+ | - JDK7以後支援Jorkjoin pool,詳情參考[[java:effective_java:lambdas_and_streams:use_caution_when_making_streams_parallel|link]]。 | ||
+ | ===== Note ===== | ||
+ | Effective Java第三版Item 80。 | ||
+ | ===== Reference ===== | ||
+ | * Effective Java, 3/e | ||
+ | ===== ===== | ||
+ | ---- | ||
+ | \\ | ||
+ | ~~DISQUS~~ |