建立乙個繼承於thread類的子類
重寫thread類中的run( )方法
將此執行緒執行的操作宣告在run方法中
建立thread類的子類物件
通過此物件呼叫start( )方法
public class test1
}//1. 建立乙個繼承於thread類的子類
class mythread extends thread}}
}
不能通過直接呼叫run()的方式去啟動執行緒,啟動執行緒只能使用start()方法
每個執行緒只能啟動一次,如果多次啟動,會報illegalthreadstateexception異常
要想建立多個執行緒,就造多個物件
建立乙個實現runnable介面的類
實現類去實現runnable類中抽象方法:run()
建立實現類的物件
將此物件作為引數傳入到thread類中的構造器中,建立thread類的物件
通過thread類的物件,呼叫start()
public class test2
}//1. 建立乙個實現runnable介面的類
class myselfthread implements runnable}}
}
原因:
實現的方式沒有類的單繼承性的侷限性
實現的方式更適合來處理多個執行緒有共享資料的情況
可以有返回值
方法可以丟擲異常,被外面的操作捕獲,獲取異常的資訊
支援泛型的返回值
建立乙個實現callable介面的實現類
實現call方法,將此執行緒需要執行的操作宣告在call方法中
建立callable介面實現類的物件
將此callable介面的實現類物件作為引數傳遞到futuretask構造器中,建立futuretask的物件
將futuretask的物件作為引數傳遞到thread類的構造器中,建立thread物件,並start()方法呼叫
獲取callable中的call方法的返回值
public class test3 catch (interruptedexception e)catch (executionexception e)
}}//1. 建立乙個實現callable介面的實現類
class numthread implements callable
}return sum;
}}
提高響應速度
降低資源消耗
便於執行緒管理
提供指定執行緒數量的執行緒池
執行指定的執行緒操作,需要提供乙個實現runnable介面或callable介面實現類的物件
關閉連線池
執行緒的建立
建立執行緒的幾種方法 1 createthread 執行緒執行函式必須是全域性的 使用方法 執行緒執行函式宣告 dword winapi threadproc lpvoid lpparam 建立執行緒 createthread null,0,threadproc,info i 0,dwthreadi...
執行緒的建立
執行緒在thread物件建立時開始啟動,傳遞給執行緒的函式執行結束時,執行緒也結束。執行緒thread建構函式 template explicit thread fn fx,args ax thread thread other noexcept thr other.thr thread opera...
執行緒的建立
執行緒的建立 1 使用createthread函式建立執行緒 handle createthread lpsecurity attributes lpsa,dword cbstack,lpthread start routine lpstartaddr,lpvoid lpvthreadparam,d...