block and 多线程
文章平均质量分 57
a_ellisa
I can do all things....
展开
-
dispatch_get_main_queue的异步同步问题
dispatch_sync(dispatch_get_main_queue(), ^(){ NSLog(@"222"); }); 在ios中是无法使用 dispatch_sync(dispatch_get_main_queue() 原因如下: 在ios使用 dispatch_sync(dispatch_get_main_queue()^(){block体});原创 2016-05-27 00:41:55 · 11010 阅读 · 0 评论 -
如何在 block 中修改外部变量
有两种办法, 第一种是可以修改 static 全局变量; 第二种是可以修改用新关键字 __block 修饰的变量。请看: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; __block int blockLocal = 100; static int staticLocal = 100; void (^a原创 2016-05-28 10:27:42 · 1869 阅读 · 0 评论 -
多线程编程之block
block 是Apple在gcc 4.2 中扩充的新语法特性,其目的是支持多核并行编程。我么可以将dispatch_queue和block结合起来使用。 1.如何编写block。 void (^aBlock)(void) = ^(void){ NSLog(@"Hello, World!"); }; aBlock(); int (^myBlock) (int,int) = ^(int a,i转载 2016-05-25 00:07:50 · 312 阅读 · 0 评论 -
在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题
方法一,@synchronized(id anObject),(最简单的方法) 会自动对参数对象加锁,保证临界区内的代码线程安全 @synchronized(self) { // 这段代码对其他 @synchronized(self) 都是互斥的 // self 指向同一个对象 } 方原创 2016-05-30 22:41:10 · 3725 阅读 · 0 评论