この質問をする最良の方法は、いくつかのコードを使用することだと思います。
//Main method
for(int i = 0; i < 10; i++)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self foo:i];
});
}
- (void) foo: (int) i
{
@synchronized(self)
{
NSLog(@"%d",i);
}
}
この場合、0~9の数字が順番に出力されることが保証されていますか? 実行キューで待機しているスレッドの 1 つがスキップされる可能性はありますか? 現実的にはどうでしょう。現実的に、それは起こりますか?上記の動作が必要な場合 (まだスレッドを使用); どうすればこれを達成できますか?