搜尋

首頁  >  問答  >  主體

iOS里的sleep函数会阻塞什么

偶然发现Objective-C里的 sleep 函数,是一个宏定义,如下

unsigned int
	 sleep(unsigned int) __DARWIN_ALIAS_C(sleep);

那么这个sleep会阻塞哪些东西呢?是不是所有的Operation都会被阻塞?还是只有主线程被阻塞?
通过 detachNewThreadSelector: toTarget: withObject: 方法出来的线程会不会受影响?
另外,如果我连续运行两次:

sleep(1);
sleep(1);

这样,第二个sleep是从第一个sleep的1s结束后才开始计算么?

伊谢尔伦伊谢尔伦2858 天前1055

全部回覆(2)我來回復

  • 阿神

    阿神2017-04-17 11:26:01

    阻塞目前執行緒。一旦看到這句話,當前線程掛起給定時間後執行下一句。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 11:26:01

    這個sleep()函數應該只是sleep目前執行這個方法的執行緒

    sleep(1);
    sleep(1);

    單獨看這兩句程式碼,只是同步方法而已,一定是第一行執行結束才會執行第二行

    回覆
    0
  • 取消回覆