摘要: 每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法 iOS支 阅读全文
posted @ 2016-03-02 16:53 Andy5020 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 以下部分介绍了Application Kit框架的线程安全。 非线程安全类 以下这些类和函数通常是非线程安全的。大部分情况下,你可以在任何线程使用这些类,只要你在同一时间只有一个线程使用它们。查看这些类的文档来获得更多的详细信息。 NSGraphicsContext。多信息,参见“NSGraphic 阅读全文
posted @ 2016-03-02 16:03 Andy5020 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 有一种误解,认为基础框架(Foundation framework)是线程安全的,而Application Kit是非线程安全的。不幸的是,这是一个总的概括,从而造成一点误导。每个框架都包含了线程安全部分和非线程安全部分。以下部分介绍Foundation framework里面的线程安全部分。 线程 阅读全文
posted @ 2016-03-02 16:01 Andy5020 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 申请大小: 栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的 阅读全文
posted @ 2016-03-01 15:06 Andy5020 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈 阅读全文
posted @ 2016-03-01 14:55 Andy5020 阅读(124) 评论(0) 推荐(0) 编辑
摘要: (1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次, 因此其值在下次调用时仍维持上次的值; (2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; (3)在模块内的 static 函数只可被这一模块内的其它 阅读全文
posted @ 2016-03-01 14:42 Andy5020 阅读(305) 评论(0) 推荐(0) 编辑
摘要: strong,weak,retain,assign,copy nomatic 等的区别 copy与retain:1、copy其实是建立了一个相同的对象,而retain不是;2、copy是内容拷贝,retain是指针拷贝; 3、copy是内容的拷贝 ,对于像NSString,的确是这样,但是如果cop 阅读全文
posted @ 2016-03-01 14:17 Andy5020 阅读(3472) 评论(0) 推荐(0) 编辑
摘要: 0. Brief Introduction GCD,全称Grand Central Dispath,是苹果开发的一种支持并行操作的机制。它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。 GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得 阅读全文
posted @ 2016-02-29 16:26 Andy5020 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOpe 阅读全文
posted @ 2016-02-29 16:07 Andy5020 阅读(771) 评论(0) 推荐(0) 编辑
摘要: Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。 dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。 /*! * @function dispatch_get_ 阅读全文
posted @ 2016-02-29 15:56 Andy5020 阅读(177) 评论(0) 推荐(0) 编辑