執行緒控制方法

2021-09-18 06:42:02 字數 3066 閱讀 9375

執行緒的常用方法

thread t =

newthread()

;

1. 啟動執行緒shart()

t.

stat()

;//啟動執行緒

2. 停止執行緒注意:不建議使用stop()和destory()方法(已過時),呼叫其可能會產生不可預料的結果;

執行緒停止有兩種情況:

例如:

class

terminal

implements

runnable

@override

public

void

run()}

//提供修改標識的方法

public

void

terminate()

}public

class

testterminal

system.out.

println

(thread.

currentthread()

.getname()

+"--->"

+ i);}

}}

執行結果:在main函式裡,當i==8時終止了子執行緒

3. 休眠執行緒sleep()

這裡要注意的有:

sleep()的應用:

例1:模擬龜兔賽跑,讓兔子每走十步休眠100ms;

public

class

testracer

implements

runnable

catch

(interruptedexception e)

} system.out.

println

(thread.

currentthread()

.getname()

+"-->"

+ steps)

;// 比賽是否結束

boolean flag =

gameover

(steps);if

(flag)}}

private

boolean

gameover

(int steps)

else

if(steps ==

100)

return

false;}

public

static

void

main

(string[

] args)

}

例2:模擬網上購票

class

sell

implements

runnable

//模擬延時

trycatch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+ ticketnum++);}}}

例3:模擬倒計時

public

class

testblockedsleep01}}

public

static

void

test()

throws interruptedexception

}}

執行結果:

4. 執行緒讓步yield()

讓正在執行的執行緒停止或讓步,讓給優先順序較高的執行緒獲取cpu的執行權,不一定會讓出cpu執行權,取決於作業系統,若等待的執行緒優先順序較低或者當前只有乙個執行緒在執行時,那麼當前執行緒又會立即獲取到cpu的執行權

例1:

class

yield

implements

runnable

}public

class

testyield

}

一次執行結果:讓步成功

例2:主線程中i為2的倍數時,主線程呼叫yield();

ublic class

testyield02})

.start()

;for

(int i =

0;i <

5;i++

) system.out.

println

("main"

+ i);}

}}

5. 執行緒加入join()例:

public

class

testjion})

; t.

start()

;for

(int i =

0;i <

10;i++

) system.out.

println

("main"

+ i);}

}}

結果:主線程阻塞後,子執行緒結束之後才得以繼續執行;

執行緒控制 join執行緒

在我們做專案的時候時常會有這樣的一種需求 我們需要執行兩個方法,乙個方法要等另乙個方法執行完才能執行,這樣的狀況放到多執行緒中要怎麼實現呢?今天就來看看多執行緒中的join方法。我們的均方法通常是把乙個大問題分成許多小問題,每個小問題分配乙個執行緒,當所有的小問題都得到處理後,在呼叫主線程來進一步操...

執行緒 之 執行緒控制

下面有幾種方法可以很好的控制線程的執行。1.join 執行緒控制 2.後台執行緒 守護執行緒 3.sleep執行緒睡眠 4.yield執行緒讓步 1.join 執行緒控制。thread提供了讓乙個執行緒等待另外乙個執行緒完成的方法 join 方法 意思 當在a程式執行流 執行緒 中呼叫b執行緒的ji...

執行緒控制函式

執行緒共享資源如下 靜態資料 程序中開啟的檔案描述符 當前工作目錄 使用者i d int pthread create pthread t thread,pthread attr t attr,void start routine void void arg 函式作用建立乙個執行緒 thread 執...