使用runloop阻塞线程
来源:互联网 发布:php代练工作室网站源码 编辑:程序博客网 时间:2024/05/17 08:09
RunLoop从字面上看是运行循环的意思,这一点也不错,它确实就是一个循环的概念,或者准确的说是线程中的循环。
每一个线程都有其对应的RunLoop,但是默认非主线程的RunLoop是没有运行的,需要为RunLoop添加至少一个事件源,然后去run它。一般情况下我们是没有必要去启用线程的RunLoop的,除非你在一个单独的线程中需要长久的检测某个事件。
使用runloop阻塞线程直接上代码:
- (void)viewDidLoad { [super viewDidLoad]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSLog(@"========1========"); [self Test1]; while (!end) { NSLog(@"========runloop start========"); [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; NSLog(@"========runloop end========"); } NSLog(@"========5========"); }); // Do any additional setup after loading the view, typically from a nib.}-(void)Test1{ NSBlockOperation *block = [[NSBlockOperation alloc] init]; [block addExecutionBlock:^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ sleep(3); NSLog(@"========3========"); [self Test2]; }); }]; [block setCompletionBlock:^{ NSLog(@"========2========"); }]; [block start];}-(void)Test2{ NSLog(@"========4========"); end = YES;}
0 0
- 使用runloop阻塞线程
- 使用runloop阻塞线程的正确写法
- ios下使用runloop阻塞线程
- 使用runloop阻塞线程的正确写法
- 使用runloop阻塞线程的正确写法
- runloop实现原理初解 和 使用runloop阻塞线程
- runloop 阻塞主线程
- iOS开发-使用Runloop实现线程保活、线程常驻
- 使用Asynctask导致线程阻塞
- RunLoop使用
- runloop使用
- RunLoop使用
- 子线程开启RunLoop
- ***线程,GCD,runloop
- iOS RunLoop常驻线程
- 使用线程,防止当前程序被阻塞
- Java 使用线程经验之阻塞队列
- 线程阻塞
- Java技能树
- JMeter入门8---集合点
- JS 工具博客
- System.getProperty()方法大全
- 51nod-1186 质数检测
- 使用runloop阻塞线程
- JMeter入门7---监控服务器CPU, 内存,网络数据
- 关于Django出现Specified key was too long; max key length is 767 bytes的解决办法
- SystemClock
- 【Android】使用OpenCV提取人体肤色区域
- 【Qt开发】Linux下Qt开发环境的安装与集成
- com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/NOTICE
- fidder抓包
- SDUTACM 图结构练习——最小生成树