iOS GCD 同步异步的区别 Swift 代码的简单实现
2017-10-20 16:42
756 查看
新建一个工程
引入头文件
import Dispatch
imageview.contentMode =UIViewContentMode.scaleAspectFit
self.view.addSubview(imageview)
let url ="http://f.hiphotos.baidu.com/image/pic/item/e1fe9925bc315c60191d32308fb1cb1348547760.jpg"
let imageURL =NSURL(string:url)
as URL!
let serialQueue =DispatchQueue(label:
"com.leo.serialQueue", attributes: .concurrent)//并发队列
//异步执行
serialQueue.async {
let imageData =NSData.init(contentsOf: imageURL!)
let image =UIImage(data:imageData!
as Data)
iflet successfulImage = image{
DispatchQueue.main.async {
self.imageview.image = successfulImage
}
}
debugPrint("===========)")
}
//同步执行
serialQueue.sync {
let imageData =
NSData.init(contentsOf: imageURL!)
let image =
UIImage(data:imageData! as
Data)
if
let successfulImage = image{
DispatchQueue.main.async {
self.imageview.image = successfulImage
}
}
debugPrint("===========)")
}
至于效率怎么样,就自己看吧
引入头文件
import Dispatch
imageview.contentMode =UIViewContentMode.scaleAspectFit
self.view.addSubview(imageview)
let url ="http://f.hiphotos.baidu.com/image/pic/item/e1fe9925bc315c60191d32308fb1cb1348547760.jpg"
let imageURL =NSURL(string:url)
as URL!
let serialQueue =DispatchQueue(label:
"com.leo.serialQueue", attributes: .concurrent)//并发队列
//异步执行
serialQueue.async {
let imageData =NSData.init(contentsOf: imageURL!)
let image =UIImage(data:imageData!
as Data)
iflet successfulImage = image{
DispatchQueue.main.async {
self.imageview.image = successfulImage
}
}
debugPrint("===========)")
}
//同步执行
serialQueue.sync {
let imageData =
NSData.init(contentsOf: imageURL!)
let image =
UIImage(data:imageData! as
Data)
if
let successfulImage = image{
DispatchQueue.main.async {
self.imageview.image = successfulImage
}
}
debugPrint("===========)")
}
至于效率怎么样,就自己看吧
相关文章推荐
- iOS学习笔记74-IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别附代码
- iOS GCD/主队列/并行队列/全局队列/串行队列/同步任务/异步任务区别 含代码
- IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别(附代码)
- IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别(附代码)
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 线程同步和异步的区别?IOS中如何实现多线程的同步?
- iOS gcd 串行,并行,同步,异步代码研究
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例(转载)
- IOS多线程知识总结/队列概念/GCD/主队列/并行队列/全局队列/主队列/串行队列/同步任务/异步任务区别
- iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- swift的代码教程-ios简单动画类(Animator)
- 论坛源码推荐(7月9日):用Swift实现的计时器 最简单的方式展示iOS App更新
- ajax同步异步简单实现
- 聊聊iOS下block + GCD (Grand Central Dispatch)实现异步非阻塞
- swift在storyboard中如何实现代理委托指向(简单代码)
- 聊聊iOS下block + GCD (Grand Central Dispatch)实现异步非阻塞
- swift的代码教程-ios简单声音类(SoundOp)
- iOS中 block + GCD 实现异步非阻塞
- iOS开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局