感谢网上那些的介绍文件
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法。在Mac OS X 10.6雪豹中首次推出,并在iOS4.0 之后才别引入 。
GCD是一个替代诸如NSThread等技术的很高效和强大的技术。GCD完全可以处理诸如数据锁定和资源泄漏等复杂的异步编程问题。 异步处理的解决办法。
主要方法:
(1)创建一个队列
dispatch_queue_t queue = dispatch_queue_create("LoadImage", NULL);
其中,第一个参数是标识队列的,第二个参数是用来定义队列的参数(目前不支持,因此传入NULL)。
(2)执行一个队列(async--->异步,sync--->同步)
dispatch_async(queue, ^{ [self doSomething]; });
其中,首先传入之前创建的队列,然后提供由队列运行的代码块。
(3)声明并执行一个队列 (如果不需要保留要运行的队列的引用)
dispatch_async(dispatch_queue_create ("LoadImage", NULL), ^{ [self doSomething]; });
(4)暂停一个队列
dispatch_suspend(queue);
(5)恢复一个队列(如果暂停一个队列不要忘记恢复)
dispatch_resume(queue);
(6)将代码块中的工作转回到主线程(注意,dispatch_suspend (以及dispatch_resume)在主线程上不起作用)
dispatch_sync(dispatch_get_main_queue(), ^{ [self dismissLoginWindow]; });
-(void) multiThread{
dispatch_queue_t queue = dispatch_queue_create("test", NULL);
dispatch_async(queue, ^{
//在新的线程中执行
dispatch_async(dispatch_get_main_queue(), ^{
// 在主线中执行,这个时候可以来更新ui ,如果是只是单单需要异步,就不需要在新队列中,可以直接放在主线程中
});
});
}