執行緒建立新增兩種方式
阿新 • • 發佈:2021-12-05
新增方式一:實現Callable介面
與使用Runnable(重寫run方法)相比,Callable(重寫call方法)功能更強大些
call()方法相比run()方法,可以有返回值
方法可以丟擲異常
支援泛型的返回值
需要藉助FutureTask類,比如獲取返回結果
Future介面
可以對具體Runnable、Callable任務的執行結果進行取消、查詢是否完成、獲取結果等。
FutureTask是Future介面的唯一實現類。
FutureTask同時實現了Runnable,Future介面。它既可以作為Runnable被執行緒執行,又可以作為Future得到Callable的返回值。
新增方式二:使用執行緒池
背景:
經常建立和銷燬、使用量特別大的資源,比如併發情況下的執行緒,
對效能影響很大。
思路:
提前建立好多個執行緒,放入執行緒池中,使用時直接獲取,使用完放回池中。可以避免頻繁建立銷燬、實現重複利用。類似生活中的公共交通工具。