iOS 개발 노트 5-GCD

2622 단어
---컨텐츠 복원 시작 --
직접 부호
1, 비동기 함수로 병렬 대기열에 작업 추가
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(queue, ^{
NSLog (@ "그림 다운로드...% @", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
NSLog(@"사진 다운로드 2...%@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
NSLog(@"사진 다운로드 3...%@", [NSThread currentThread]);
    });
    
    
NSLog(@ "마스터 스레드....%@", [NSThread mainThread]);
 
 
둘째, 비동기 함수를 직렬 대기열에 작업 추가
 NSLog(@"%@",[NSThread mainThread]);
    
    dispatch_queue_t queue = dispatch_queue_create("dusunan", NULL);
    dispatch_async(queue, ^{
NSLog(@"사진 1----% 다운로드@", [NSThread currentThread]);
    });
    dispatch_async(queue, ^{
NSLog(@"사진 다운로드 2----%@", [NSThread currentThread]);
    });
    
    dispatch_async(queue, ^{
NSLog(@"사진 다운로드 3----%@", [NSThread currentThread]);
    });
이런 방법은 라인을 열 수 있지만, 단지 하나의 라인만 열 수 있다
 
셋째, 비동기 함수로 병렬 대기열에 작업 추가
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    
    
    
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 1%@", [NSThread currentThread]);
    });
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 2%@", [NSThread currentThread]);
    });
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 3%@", [NSThread currentThread]);
    });
4, 동기화 함수 직렬 대기열에 작업 추가
 dispatch_queue_t queue = dispatch_queue_create("dusunan", NULL);
    
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 1%@", [NSThread currentThread]);
    });
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 2%@", [NSThread currentThread]);
    });
    dispatch_sync(queue, ^{
NSLog(@"사진 다운로드 3%@", [NSThread currentThread]);
    });
    
다섯, 응용
(1) 일회용 코드
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
18 {
19     if (_log==NO) {
20         NSLog(@"         ");
21         _log=YES;
22     }
23 }



-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
26 {
27     static dispatch_once_t onceToken;
28     dispatch_once(&onceToken, ^{
29         NSLog(@"         ");
30     });
31 }


좋은 웹페이지 즐겨찾기