基本定义: 程序:由代码生成的可执行应用。(例如QQ.app) 进程:一个正在运行的程序可以看做是一个进程。 (例如:正在运行的QQ 就是一个进程),进程拥有独立运行所需要的全部资源。 线程: 程序中独立运行的代码段。(例如: 接收QQ 消息的代码) 一个进程是由一个或者多个线程组成。进程只负责资源 ...
分类:
移动开发 时间:
2018-06-20 12:48:01
阅读次数:
179
完全来自于 iOS 多线程安全与可变字典 的学习 基本相同,举一反三 直接上样例代码 是我参照网上,根据当前业务需求改的。 其实好多人在这里喜欢用类别处理。我个人觉得用类别 极其容易和普通方法混淆,所以为了降低耦合度,增强代码理解性和可读性。这里单独创建类挺好的。用时候使用这个自定义的安全数组就好了 ...
分类:
移动开发 时间:
2018-06-07 17:52:49
阅读次数:
257
用法, 创建信号量实际就是创建的对象设置最大并发数.不得小于0, 小于0导致崩溃, , 减少一个信号量, 比如创建的对象信号量是5, wait一次就减少一个信号量,信号量变为4, 当信号量为0的时候当前线程就会等待,直到信号量 0的时候才会往下进行. 增加一个信号量,减少与增加信号量是成对出现的. ...
分类:
移动开发 时间:
2018-05-23 20:45:46
阅读次数:
231
# 栈区/堆区/常量区- 操作内存的栈区速度很快;栈区存储空间地址是连续的- 操作内存的常量区速度很快;内存空间只开辟一次;- 操作内存的堆区速度相对栈区和常量区要慢些;堆区内存空间不连续,需要寻址`` // 存储在栈区` int num = 10;` // 存储在常量区 ` NSString *s ...
分类:
移动开发 时间:
2018-04-21 13:33:07
阅读次数:
187
一、简单介绍 是基于C语言开发的一套多线程开发机制。也是眼下苹果官方推荐的多线程开发方法。用起来也最简单。仅仅是它基于C语言开发,并不像NSOperation是面向对象的开发。而是全然面向过程的。假设使用GCD,全然由系统管理线程,我们不须要编写线程代码。仅仅需定义想要运行的任务,然后加入到适当的调 ...
分类:
移动开发 时间:
2018-03-13 16:29:31
阅读次数:
283
什么是GCD 全称Grand Central Dispatch 中暑调度器 纯C语言 提供了很多强大的函数 GCD 的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如 双核 四核) GCD会自动管理线程的生命周期 (创建线程 调度任务 销毁线程) 程序员只 ...
分类:
移动开发 时间:
2018-03-08 02:35:57
阅读次数:
293
一个NSThread对象就代表一条线程 下面是NSThread开启线程的方法 NSThread 创建线程的生命周期 当线程中的任务执行完毕后 线程被释放掉 可以继承NSThread创建一个新类 重写dealloc方法来验证 线程的状态 当线程处于就绪状态时线程会被移到可调度线程池里面(CPU只调度此 ...
分类:
移动开发 时间:
2018-03-06 00:49:10
阅读次数:
309
在iOS多线程中我们知道NSOperationQueue操作队列可以直接使用addDependency函数设置操作之间的依赖关系实现线程同步,还可以使用setMaxConcurrentOperationCount函数直接设置最大并发数量。那么在GCD中又是如何实现线程同步和控制最大并发数量的呢? 事 ...
分类:
其他好文 时间:
2017-12-22 03:22:34
阅读次数:
174
通过对前面两偏线程理解的总结,自己对线程的理解也逐渐加深,梳理的清晰起来…… 通常在使用线程 的时候,都是要用到 执行对列,执行方式,执行任务, 现在开始新一轮的深入 3. 1. 1 同步 + 串行 执行结果::: 总结结果::: 1. 同步 : 在当前线程执行,不开启新的线程,任务顺序执行 2. ...
分类:
移动开发 时间:
2017-12-21 12:01:27
阅读次数:
229
线程锁是什么 在前面的文章中总结过多线程,总结了多线程之后,线程锁也是必须要好好总结的东西,这篇文章构思的时候可能写的东西得许多,只能挤时间一点点的慢慢的总结了,知道了线程之后要了解线程锁就得先了解一下什么是“线程锁”。 “线程锁”一段代码在同一个时间内是只能被一个线程访问的,为了避免在同一时间内有 ...
分类:
移动开发 时间:
2017-12-02 15:13:09
阅读次数:
256