iOS中的sleep 函式阻塞的是哪個執行緒

2021-06-29 16:38:20 字數 286 閱讀 3801

問題:在做多執行緒開發的時候,測試case裡面做乙個延遲的操作,想到了sleep()函式,但是又不能確定它到底阻塞的是主線程還是當前執行緒。

分析:於是自己測試了一下,用dispatch_queue_create建立了乙個序列佇列,然後在這個dispatch_queue_t上執行sleep(10),結果發現阻塞的是這個序列佇列,而主線程沒有收到影響。而且我在這個序列佇列中多次呼叫sleep(10),該執行緒先會睡眠10秒,喚醒後執行相關方法,然後再次睡眠10s,喚醒後執行相關方法,。。。

結論:sleep()函式阻塞的是當前程序。

js自製無阻塞sleep函式

與大多數語言不同,js中無自帶sleep函式,但是可以通過promise與await實現。製作sleep函式,首先要編寫乙個名為sleep的promise函式,promise函式在執行resolve的時候結束,所以如果在promise函式內部,將resolve包裹在定時器中,函式執行的時間就變得可控...

c 中的sleep 函式

標準庫中無該函式 但在某些編譯系統中有,在有些系統庫中有,要根據你那邊的環境而定。如 linux中有,unsigned int sleep unsigned int seconds 傳入掛起時間,成功返回0,不成功則返回餘下的秒數。windows系統中有sleep函式 注意大寫 void sleep...

Linux中的sleep函式

環境 vmware workstation centos 6.4 x86 64 說明 1 linux系統下可以使用sleep函式。2 sleep函式在標頭檔案 include 中。3 sleep函式的定義 unsigned int sleep unsigned int seconds 4 函式的引數...