sleep(),usleep()和[NSThread sleepForTimeInterval:]之间有什么区别?

raa*_*aaz 18 iphone cocoa objective-c

任何人都可以解释一下sleep(),usleep()和[NSThread sleepForTimeInterval:]之间的区别是什么?

使用这些方法的最佳条件是什么?

Jas*_*oco 26

sleep(3)是一个posix标准库方法,它尝试在几秒钟内指定的时间内挂起调用线程.usleep(3)做同样的事情,除了它需要一个微秒的时间.两者实际上都是通过nanosleep(2)系统调用实现的.

最后一个方法做了同样的事情,除了它是Foundation框架的一部分而不是C库调用.它需要一个NSTimeInterval来表示睡眠的时间量,表示秒和秒的分数.

对于所有意图和目的,它们在功能上都做同样的事情,即尝试暂停调用线程一段指定的时间.


bbu*_*bum 20

使用这些方法的最佳条件是什么?

决不

或者,实际上,几乎可以肯定的是,在最独特的情况之外.

你想做什么?

  • 但比尔,我发现在这里睡了几纳秒就清除了我所有令人费解的EXC_BAD_ACCESS崩溃! (10认同)
  • 嘿.我畏缩的时候我看到代码使用`usleep()`进行"线程同步"的目的.我的畏缩肌肉很伤心. (7认同)