建立乙個執行緒主要有以下幾種方法:
繼承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...