一、线程之间的通讯
1、
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 下载图片
UIImage *image = nil;
dispatch_async(dispatch_get_main_queue(), ^{
回到主线程
});
2、 [self performSelector:@selector(settingImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:YES modes:nil];
[self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:YES];
3、NSMarchPort
二、多线程安全的解决方法
1、只在主线程刷新访问UI
2、如果要防止线程资源抢夺,得用synchronized进行枷锁保护
3、如果异步线程要保证线程安全问题,尽量使用GCD(有些函数默认是线程安全的)

四、NSOperationQueue 与GCD的区别
网友评论