多執行緒Tread中的常用方法

2021-10-19 08:42:02 字數 4069 閱讀 4694

tread中常用的方法

start():啟動當前執行緒;呼叫當前執行緒的run()

run():通常需要重寫thread類中的方法,將建立的執行緒要執行的操作宣告在此方法中

currentthread():靜態方法,返回執行當前**的執行緒

getname():獲取當前執行緒的名字

setname():設定當前執行緒的名字

yield():釋放當前cpu的執行

stop():已過時。當執行此方法時,強制結束當前執行緒。

sleep(long millitime):讓當前執行緒「睡眠」指定的millitime毫秒。在指定的millitime毫秒時間內,當前執行緒是阻塞狀態。

isalive():判斷當前執行緒是否存活

package new1;

/** 多執行緒的建立,方式一:繼承thread類

* 1.建立乙個繼承於thread類的子類

* 2.重寫thread類的run()--->將此執行緒執行的操作宣告在run()中

* 3.建立thread類的子類的物件

* 4.通過此物件呼叫start()

** 例子:遍歷100以內的所有偶數

* */

//1.建立乙個繼承於thread類的子類

class

mythread1

extends

thread}}

}class

mythread2

extends

thread}}

}public

class

demo1}}

}

結果

這是主線程:21

這是主線程:23

thread-1:

1thread-1:

3thread-1:

5thread-1:

7thread-1:

9thread-1:

11thread-1:

13thread-1:

15thread-1:

17thread-1:

19thread-0:

0thread-0:

2thread-0:

4thread-0:

6thread-0:

8thread-0:

10thread-0:

12thread-0:

14thread-0:

16thread-0:

18這是主線程:25

這是主線程:27

這是主線程:29

這是主線程:31

這是主線程:33

這是主線程:35

這是主線程:37

這是主線程:39

匿名子類的方式

package new1;

public

class

demo2}}

}.start()

;new

thread()

}}}.

start()

;}}

答案

thread-0:

0thread-0:

2thread-0:

4thread-0:

6thread-0:

8thread-0:

10thread-0:

12thread-0:

14thread-0:

16thread-0:

18thread-1:

1thread-1:

3thread-1:

5thread-1:

7thread-1:

9thread-1:

11thread-1:

13thread-1:

15thread-1:

17thread-1:

19

命名,獲取名,與currentthread()
package new1;

public

class

demo2}}

}class

mythread3

extends

thread}}

}

答案

主線程:

1執行緒一:

0執行緒一:

2執行緒一:

4執行緒一:

6執行緒一:

8執行緒一:

10執行緒一:

12執行緒一:

14執行緒一:

16執行緒一:

18主線程:

3主線程:

5主線程:

7主線程:

9主線程:

11主線程:

13主線程:

15主線程:

17主線程:

19

另一種命名方式(利用thread類中的構造方法命名)
package new1;

public

class

demo2}}

}class

mythread3

extends

thread}}

public

mythread3

(string name)

}

答案

執行緒一一:

0執行緒一一:

2執行緒一一:

4主線程:

1執行緒一一:

6主線程:

3主線程:

5執行緒一一:

8主線程:

7主線程:

9主線程:

11主線程:

13主線程:

15主線程:

17主線程:

19執行緒一一:

10執行緒一一:

12執行緒一一:

14執行緒一一:

16執行緒一一:

18

yield方法
package new1;

public

class

demo2}}

}class

mythread3

extends

thread

if(i%4==

0)}}

public

mythread3

(string name)

}

答案

主線程:

1執行緒一一:

0主線程:

3執行緒一一:

2主線程:

5執行緒一一:

4主線程:

7主線程:

9主線程:

11主線程:

13主線程:

15主線程:

17主線程:

19執行緒一一:

6執行緒一一:

8執行緒一一:

10執行緒一一:

12執行緒一一:

14執行緒一一:

16執行緒一一:

18

join方法

package new1;

public

class

demo2

if( i==1)

catch

(interruptedexception e)}}

}}class

mythread3

extends

thread}}

}

sleep
package new1;

public

class

demo2}}

}class

mythread3

extends

thread

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+":"

+i);}}

}}

多執行緒Tread中的常用方法

tread中常用的方法 start 啟動當前執行緒 呼叫當前執行緒的run run 通常需要重寫thread類中的方法,將建立的執行緒要執行的操作宣告在此方法中 currentthread 靜態方法,返回執行當前 的執行緒 getname 獲取當前執行緒的名字 setname 設定當前執行緒的名字 ...

常用多執行緒方法

reentrantlock類 synchronized關鍵字,屬於悲觀鎖。可重入鎖,即遞迴鎖。指在同一執行緒內,外層函式獲得鎖之後,內層遞迴函式仍然可以獲得該鎖。作用 防止在同一執行緒中多次獲取鎖而導致死鎖發生。j a.util.concurrent.atomic包下的atomicreference...

多執行緒常用方法介紹

可以返回 正在被那個執行緒呼叫的資訊 public class threadtest extends thread public static void main string args 執行結果 main方法是由乙個叫main的執行緒呼叫的 run方法是由乙個thrad 0方法呼叫的 isaliv...