我是Obj-C的新手,我想知道如何在不同的时间内完全同时执行两个函数(精度达到1毫秒)而不等待返回。
目前我尝试了
#define kBgQueue1 dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)
dispatch_sync(kBgQueue1, ^{
[self function1];
});
dispatch_sync(kBgQueue1, ^{
[self function2];
});
答案 0 :(得分:2)
dispatch_get_global_queue()
为您提供了一个可以执行的并发队列
并行的任务。但你必须使用
dispatch_async()
执行块而不等待它们完成。
但请注意,Grand Central Dispatch不保证时间安排。 GCD也使用有限的线程池,因此也无法保证 这些块“同时”执行。
如果您需要更多关于线程创建的控制权,那么您将不得不使用较低级别的类/函数
例如NSThread
或pthread_create()
。
正如@Volker在评论中已经说过的那样,你没有100%的控制权 OS X或iOS上的计时。
有关详细信息,请参阅"Concurrency Programming Guide"。