- 博客(8)
- 收藏
- 关注
原创 在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题
方法一,@synchronized(id anObject),(最简单的方法)会自动对参数对象加锁,保证临界区内的代码线程安全@synchronized(self) { // 这段代码对其他 @synchronized(self) 都是互斥的 // self 指向同一个对象 } 方
2016-05-30 22:41:10 3722
原创 线程与进程
进程(process)是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。 进程中所包含的一个或多个执行单元称为线程(thread)。进程还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。 通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。 在引入线程的操作系统中,通常都是把进程作为分配资源和调度的基本单位,而把线
2016-05-30 22:11:25 244
转载 iOS关键字strong/weak/assign/retain/nonatomic/atomic
依旧本着尊重原创和劳动者的原则,将地址先贴在前面:http://www.cnblogs.com/nonato/archive/2013/11/28/3447162.html,作者Nonato恭喜勇士G6,拿下雷霆。勇士老板那真是跪拜汤神啊....IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数。 引用计数在很多技术都用
2016-05-30 00:36:59 281
原创 如何在 block 中修改外部变量
有两种办法,第一种是可以修改 static 全局变量;第二种是可以修改用新关键字 __block 修饰的变量。请看:NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];__block int blockLocal = 100;static int staticLocal = 100;void (^a
2016-05-28 10:27:42 1865
原创 Xcode 7中http通信出现如下错误
Xcode 7中http通信出现如下错误:Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
2016-05-27 11:40:36 256
原创 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 11001
转载 堆和栈的区别 (转贴)
堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由
2016-05-26 09:22:00 577
转载 多线程编程之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 311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人