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结束后才开始计算么?

阅读 24k
2 个回答

这个sleep()函数应该只是sleep当前执行这个方法的线程

sleep(1);
sleep(1);

单独看这两句代码,只是同步方法而已,肯定是第一行执行结束才会执行第二行

阻塞当前线程。一旦看到这句话,当前线程挂起给定时间后执行下一句。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏