你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS開發中多線程的使用

IOS開發中多線程的使用

編輯: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("子線程\n");         }     }];   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];              } }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved