初始化執行緒四種使用方式
阿新 • • 發佈:2021-07-08
1)、繼承Thread
2)、實現Runnable,介面
以上兩種執行結果都是一樣
3)、實現 Callable介面+FutureTask(可以拿到返回結果,可以處理異常
相當於阻塞整個執行緒執行完成,獲取返回結果,才會往下執行,不獲取結果跟Thread 和 Runnable執行結果是一樣的效果
FutureTask<V>不僅可以接收Callable還可以接收 Runnable
4)、執行緒池
多執行緒非同步任務一般都是用執行緒池,業務上避免一直使用以上三種方式會浪費資源
使用Executors工具類,原生的執行緒池可自行了解使用
Executors.newFiexedThreadPool(3);//或者 new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, TimeUnit unit,workQueue, threadFactory, handler);
execute方法是無返值,submit按需使用都有返回值
以上四種的區別:
1,2不能得到返回值,3可以獲取返回值
1,2,3都不能控制資源
4可以控制資源,效能穩定