2 차 스레드에 대한 dispatch_async 호출이 있으며 테스트 목적으로 5 초 동안 보조 스레드를 잠자 게하고 싶습니다. 이 여기에 코드입니다 : 나는 맥 OSX 라이온 10.7.2에서이 작업을 테스트 할 때sleep()은 iOS에서는 작동하지만 mac에서는 작동하지 않습니까?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
sleep(5);
});
, 슬립() 함수는 잠을 스레드를 넣어하지 않습니다. 그리고 동일한 코드를 사용하는 iPhone 시뮬레이터에서 그렇습니다.
mac에서 sleep은 주 스레드에서 작동하고 [NSThread sleepUntilTimeInterval :]을 사용하는 보조 스레드에서 작동합니다.
잠자기() 기능이 Mac의 보조 스레드에서 작동하지 않는 이유는 무엇입니까? 감사합니다.
[그랜드 센트럴 디스패치 대 NSThread] (http://stackoverflow.com/questions/5653522/grand-central-dispatch-vs-nsthread)와 [수면을 사용하지 않는 이유가 있습니까? 그랜드 센트럴 디스패치 대기열?] (http://stackoverflow.com/questions/4668634/iphone-is-it-ok-to-use-usleep-on-a-secondary-thread-on-grandcentral-dispatch) –