iOS多线程dispatch_async

2 篇文章 0 订阅

iOS中对于多线程有3种方法:

1、Thread。

2、Operations。

3、Grand Central Dispatch。简称GCD


我用的比较多的是GCD,经常把数据加载等耗时部分放入全局中,而主线程只对一些事件、UI等操作。例如:

-(void)getImageView:(NSString *)url andImage:(UIImageView *)imageView

{

    dispatch_async(dispatch_get_global_queue(0, 0), ^{

        //这里进行数据加载等比较耗时的操作

        NSURL *URL = [NSURL URLWithString:url];

        NSData *data = [NSData dataWithContentsOfURL:URL];

        UIImage *image = [[UIImage alloc] initWithData:data];

        

        dispatch_async(dispatch_get_main_queue(), ^{

            //在主线程中进行UI显示操作

            imageView.image = image;

        });

    });

}


其实呢现在手机内存够大、处理器性能够强、网速够快数据小感觉不到什么,但是数据大的时候还是有的。至少不会造成线程阻塞。而导致app不能工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值