线程与进程的概念
- 线程是进程的基本执行单元。一个进程的所有任务依赖线程执行。
- 进程是应用程序在操作系统中的独立运行的空间,是由多条线程共同完成的。每个进程之间都是相互独立的
区别:
- 进程是操作系统资源分配的基本单元。
- 线程是操作系统任务调度和执行的最小单元。
- 多线程的优缺点:
- 优点:
- 提高程序的执行效率
- 适当提高资源利用率(CPU\内存)
- 缺点:
- 大量的线程会占用大量的空间
- 线程越多,CPU在调用线程上的开销越大
- 程序设计更复杂,需要处理线程间通讯和数据
GCD
-
Grand central dispatch 中央处理器
-
是纯C语言写的,专门支持多核处理器
-
自动管理线程的生命周期
-
并发和串行只决定任务的执行顺序,,跟线程无关
-
并发 异步嵌异步
打印: 2 4 3
- 并发: 异步嵌同步
打印:2 3 4 同步是立即执行
并发:同步嵌异步
打印 2 4 3
并发:同步嵌同步(同步在一个队列按顺序执行,同步是立即执行)
按顺序执行 2 3 4
- 串行 :异步嵌同步 死锁
串行 :异步嵌异步 ( 打印 2 4 属于同一个任务)
打印:2 4 3
串行:同步嵌同步 死锁
串行 :同步嵌异步
打印:2 4 3
死锁发生的条件: 串行同步会发生死锁
主队列也是串行队列, 如果主队列执行同步任务也会发生死锁情况