网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 IOS开发中多线程的使用
范文
    一、创建多线程的五种方式
    1.开启线程的方法一
    NSThread * thread=[[NSThread alloc] initWithTarget:self selector:@selector(_update) object:nil];
    2.开启线程的方法二
    [NSThread detachNewThreadSelector:@selector(_update) toTarget:self withObject:nil];
    3.开启线程的方法三
    [self performSelectorInBackground:@selector(_update) withObject:nil];
    4.开启线程的方法四
    NSOperationQueue *queue=[[NSOperationQueue alloc] init];
    [queue addOperationWithBlock:^{
    for(int i=0;i<50;i++){
    printf("子线程 ");
    }
    }];
    5.开启线程的方法五
    //第一步开启线程池
    NSOperationQueue * queue=[[NSOperationQueue alloc] init];
    //设置并发数目
    [queue setMaxConcurrentOperationCount:2];
    //第二部创建多线程添加到线程池
    NSInvocationOperation * thread1=[[NSInvocationOperation alloc] initWithTarget:self selector:@selector(_update1) object:nil];
    NSInvocationOperation *thread2=[[NSInvocationOperation alloc] initWithTarget:self selector:@selector(_update2) object:nil];
    [thread1 setQueuePriority:NSOperationQueuePriorityVeryLow];
    [thread2 setQueuePriority:NSOperationQueuePriorityVeryHigh];
    [queue addOperation:thread1];
    [queue addOperation:thread2];
    二、多线程应用实例,加载图片。
    1.核心思想
    考虑到如果加载网络图片会延迟,在一个主线程加载会影响控件的渲染,此时可以采取多线程,异步加载完成后刷新UI。
    2.实现思路
    通过为UIImageView 增加类目来实现多线程下载。
    主要代码:
    #import "UIImageView+thread.h"
    @implementation UIImageView(load)
    - (void) setImageWithUrl:(NSString *)url{
    [self performSelectorInBackground:@selector(_loadImage:) withObject:url];
    }
    - (void) _loadImage:(NSString *)u{
    @autoreleasepool {
    NSURL *url=[NSURL URLWithString:u];
    NSData *data=[NSData dataWithContentsOfURL:url];
    UIImage *image=[UIImage imageWithData:data];
    [self performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
    }
    }
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/24 1:52:59