Open mangreen opened 2 years ago
Runnable和Callable的區別是:
https://www.jianshu.com/p/9c9a11092f26
- Runnable更容易实现资源共享,能多个线程同时处理一个资源。
https://popcornylu.gitbooks.io/java_multithread/content/threadpool/threadpool.html
https://www.cnblogs.com/zhujiabin/p/5404771.html Java通過Executors提供四種線程池,分別為:
- newCachedThreadPool創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。
- newFixedThreadPool 創建一個定長線程池,可控制線程最大並發數,超出的線程會在隊列中等待。
- newScheduledThreadPool 創建一個定長線程池,支持定時及週期性任務執行。
- newSingleThreadExecutor 創建一個單線程化的線程池,它只會用唯一的工作線程來執行任務,保證所有任務按照指定順序(FIFO, LIFO, 優先級)執行。
synchronized是不錯,但它並不完美。它有一些功能性的限制:
Spring 生命週期
Spring Boot @Bean 生命週期