執行緒認識與創建方式
1,并行與并發
并行:同一時刻同時執行方法
并發:一個時間段執行的方法
2,執行緒認識
啟動一個行程時,至少會同時啟動一個執行緒,是一個行程分不同模塊同時執行不同的作業,
一般情況下啟動Java程式,main方法是一個主執行緒啟動的同時會啟動垃圾回收的執行緒
3,開啟執行緒的方法
四種:繼承thread類,實作Runnable介面,實作callable介面,執行緒池
thread類:重寫run方法,創建類物件,start()開啟執行緒,
Runnable介面:重寫run()方法,創建thread物件傳入實作了runnable介面的物件,也可同時傳入執行緒名稱(可選,有默認),start()開啟,
callable介面(依賴futuretask類):FutureTask實作了RunnableFuture介面,RunnableFuture繼承Future(動態監控執行緒,get,isdone,cancel,,)和Runnable介面
重寫call()方法,創建FutureTask物件task傳入實作callable介面的物件,創建thread物件傳入task,也可同時傳入執行緒名,start()開啟,
開啟后可呼叫get獲取回傳值(此方法阻塞主執行緒)
執行緒池:一個裝執行緒的容器
executors工具類,幫助創建執行緒池,
executors.new.....執行緒型別(),回傳執行緒池物件,
執行緒池物件.execute方法傳入實作了runnable的物件
注意:runnable和callable區別:1.runnable重寫run方法,callable重寫call方法,2.runnable沒有回傳值,callable有回傳值
3.runnable不能拋出例外,callable可以,4.runnable不能動態監控,callable有工具類futuretask監控,如get獲取回傳值,cancel取消執行
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155857.html
標籤:Java
