多執行緒之sleep

2021-07-24 06:34:10 字數 954 閱讀 3984

還是使用join()學習的例子。實驗**如下

package thread;

public

class

jointest

implements

runnable

}public

static

void

main(string args) throws exception

}

實驗結果是0,具體原因見本人部落格多執行緒之join().

我們新增sleep()方法。

實驗**如下:

package thread;

public

class

jointest

implements

runnable

}public

static

void

main(string args) throws exception

}

實驗結果是5.在這裡本人就產生了疑惑,t呼叫sleep難道不是t會進入睡眠,main執行緒會繼續運算,這樣輸出應該是0,怎麼會是5.

其實上面t.sleep()其實是錯誤的,其實應該是thread.sleep().這裡面睡眠的是,當前執行的執行緒,這裡是main執行緒,因為t執行緒正在啟動中。

實驗**如下:

package thread;

public

class

jointest

implements

runnable

}public

static

void

main(string args) throws exception

}

實驗結果:

5

多執行緒之sleep和wait的區別

使當前執行緒睡眠,但是並不釋放鎖 sleep是thread類的方法 sleep可以用在任何地方 sleep必須捕獲異常 使當前程序等待,但是釋放鎖。wait是object類的方法 wait,包括notify和notifall只能在synchrnized修飾的方法或 塊中使用 sleep不需要捕獲異常...

多執行緒的sleep,靜態鏈結

include include include include int mysleep unsigned int sleepsecond 這就可以繞過可能的 陷阱 在嵌入式應用裡面,除去通用的庫,出於空間的考慮,需要把一些程式進行靜態鏈結,如果在實現sleep這個程式的時候,使用這個mysleep呼...

多執行緒之執行緒同步

pulse lockobj 表示釋放當前被lock的lockobj,容許其他執行緒呼叫。相當於暫時掛起當前執行緒 wait lockobj 表示等待當前被其他執行緒占用的lockobj。下面的 將會交替執行兩個執行緒 class ticktock console.write tick monitor...