多執行緒小結(2)

2022-02-15 07:15:32 字數 1945 閱讀 1356

1

private

static

thread subthread ;

2private

static

thread subthread1;

3static

void main(string

args)418

19static

void

getshow()

2025

26static

void getshow(object

obj)

2731 }

view code

thread.sleep()方法用於使當前執行緒暫停指定的時間,然後去執行流程語句。

他的意思是,你可以讓某個執行緒先「謝謝」,讓其他的兄弟先幹活,他歇息「一會兒」後再幹活

1

//引數: 2//

millisecondstimeout:3//

執行緒被阻塞的毫秒數。 指定零 (0) 以指示應掛起此執行緒以使其他等待執行緒能夠執行。 指定 system.threading.timeout.infinite4//

以無限期阻止執行緒。5//

6public

static

void sleep(int

millisecondstimeout);7//

引數: 8//

timeout:9//

設定為執行緒被阻塞的時間量的 system.timespan。 指定零以指示應掛起此執行緒以使其他等待執行緒能夠執行。 指定 system.threading.timeout.infinite

10//

以無限期阻止執行緒。

11public

static

void sleep(timespan timeout);

view code

常用於需要開啟乙個不停執行某個操作,進行迴圈時候,需要對thread進行阻塞,減少計算機資源的消耗,和合理的控制程式邏輯的執行。

1

private

static

thread subthread ;

2static

void main(string

args)314

15static

void

getshow()

1623 }

view code

1

class

program2秒

",i);21}

22subthread.interrupt();

2324 console.writeline("

主線程結束");

注意:執行緒在休眠的那一刻,被喚醒時,thread.sleep()方法會丟擲異常,所有要用 try catch (exception ex)包起來;

執行緒在沒有休眠的那一刻被喚醒,在後面某一端時間休眠後thread.sleep()方法會丟擲異常,所有進行 try catch (exception ex)異常處理,避免程式死掉。

有點扭嘴,意思就是try catch 避免程式死掉。

9 多執行緒小結(2)

3 合併執行緒 pthread join int pthread join pthread t thread,void ret 第乙個引數為被等待的執行緒識別符號,第二個引數為乙個使用者定義的指標,它可以用來儲存被等待執行緒的返回值。這個函式是乙個執行緒阻塞的函式,呼叫它的函式將一直等待到被等待的執...

9 多執行緒小結(2)

3 合併執行緒 pthread join int pthread join pthread t thread,void ret 第乙個引數為被等待的執行緒識別符號,第二個引數為乙個使用者定義的指標,它可以用來儲存被等待執行緒的返回值。這個函式是乙個執行緒阻塞的函式,呼叫它的函式將一直等待到被等待的執...

多執行緒小結

多執行緒中的4個概念 關鍵段 互斥量 事件和訊號量。其中關鍵段非核心變數,只能用於執行緒間同步問題,而其他的都是核心變數可用於程序間同步。關鍵段和互斥量一般用於互斥,因為他們有執行緒所有權的概念,擁有執行緒所有權的執行緒 通常是主線程 無視約束,可重複進入關鍵段。但是我想在子執行緒之間這個應該是可以...