建立執行緒的方式

2021-10-10 18:28:12 字數 2230 閱讀 4587

建立乙個執行緒主要有以下幾種方法:

繼承thread類建立執行緒

是將乙個類宣告為thread的子類,這個子類應該重寫thread類的run方法,然後例項化這個子類物件並呼叫start方法。thread類本質上是實現了runnable介面的乙個例項。

public

class

testthread

extends

thread

catch

(interruptedexception e)

system.out.

println

("副執行緒正在輸出..."

+ i++);

}}public

static

void

main

(string[

] args)

catch

(interruptedexception e)}}

}

實現runnable介面

如果乙個類已經繼承了其他類,那麼可以通過實現runnable介面,重寫run方法,然後以實現runnable介面的物件作為引數建立thread類的物件,呼叫thread物件的start方法,new thread(runnable).start() 。推薦使用這個方法,可以避免單繼承的弊端。

黃牛搶票的例子

// 此處併發,多個執行緒公用乙個變數,不安全

public

class

testthread4

implements

runnable

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"---> 拿到了第"

+ ticket--

+"票!");

}}public

static

void

main

(string[

] args)

}

龜兔賽跑的例子:

public

class

race

implements

runnable

else

if(thread.

currentthread()

.getname()

=="兔子"

&& i%

10==0)

}catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"-->跑了"

+ i +

"步!");

boolean flag =

gameover

(i);

if(flag)}}

private

boolean

gameover

(int step)

if(step >=

100)

else

}public

static

void

main

(string[

] args)

}

實現callable介面
public

class

testcallable

implements

callable

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"拿到了第"

+ ticket--

+"張票!");

}return

true;}

public

static

void

main

(string[

] args)

throws executionexception, interruptedexception

}

建立執行緒的方式

thread 類進行派生並覆蓋 run方法 實現runnable介面建立 public class createthread start0會呼叫run方法,如果runnable null 會執行run方法,2.如果在構造thread的時候沒有傳遞或沒有複寫thread的run方法,該thread將不...

執行緒的建立方式

繼承thread類實現 實現runnable介面方式 實現callable介面方式 其中前兩種比較常用。但是,需要有返回值需要實現callable介面。繼承thread類,並重寫run方法 public class mythread extends thread mythread thread ne...

建立執行緒的方式

一 建立執行緒的第一種方式 繼承thread 由子類複寫run方法。步驟 1,定義類繼承thread類 2,目的是複寫run方法,將要讓執行緒執行的 都儲存到run方法中 3,通過建立thread類的子類物件,建立執行緒物件 4,呼叫執行緒的start方法,開啟執行緒,並執行run方法。public...