執行緒的建立

2022-08-13 04:00:21 字數 1373 閱讀 1389

建立乙個繼承於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...