iOS解决多线程 线程阻塞问题

一:这样处理之后不会影响外部视图的展示,亲测可行


#import"ThreadSDK.h"


@interfaceThreadSDK(){

    BOOL threadDone;

}


@end


@implementationThreadSDK


//测试接口

- (void)thread {

    [selfperformSelector:@selector(asynchronousSource)withObject:nilafterDelay:0];

    NSLog(@"me");

   threadDone= NO;

    do {

       // Start the run loop but return after each source is handled.

        

       SInt32result =CFRunLoopRunInMode(kCFRunLoopDefaultMode,1,YES);

        

       if((result ==kCFRunLoopRunStopped) || (result ==kCFRunLoopRunFinished))

            

            threadDone = YES;

        

    } while (!threadDone);

    

   NSLog(@"me --- end");

}


//阻塞测试

- (void)asynchronousSource {

    

    for (int i = 0; i < 5; i++) {

        

        sleep(1);

        

       NSLog(@"asynchronous input source run");

    }

   threadDone= YES;

}


转自:http://www.cnblogs.com/jy578154186/archive/2013/02/26/2933974.html