2次スレッドへのdispatch_async呼び出しがあります。テスト目的のために、5秒間2次スレッドをスリープ状態にしたかったのです。 ここのコードです:私は、Mac OSXライオン10.7.2上でこれをテストする場合sleep()はiOSでは動作しますが、Macでは動作しません。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
sleep(5);
});
、スリープ()関数は、スリープ状態にスレッドを入れていません。そして、同じコードを使っているiPhoneシミュレータではそうです。
Macでは、スリープはメインスレッドで機能し、[NSThread sleepUntilTimeInterval:]を使用するセカンダリスレッドでも機能します。
なぜsleep()関数が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) –