oc进程和线程

1.进程:正在运行的程序,负责程序的内存分配,每一个进程都有自己独立的虚拟内存空间。(一个程序运行的动态过程)

2.线程:线程是进程中一个独立执行的路径(控制单元)一个进程至少包含一条线程,即主线程可以将耗时的执行路径(如网络请求)放在其他线程中执行。

3.创建线程的目的:为了开启一条新的执行路径,运行指定的代码,与主线程的代码实现同时执行。

.主线程的栈区

控件大小为1M,非常非常宝贵

.子线程的栈区

空间大小为512

.内存控件

多任务系统调度

.每一个应用程序由操作系统分配的短暂的时间片轮流使用和cpu,忧郁cpu对于每个时间片的处理速度非常快,用户感觉这些任务是同时进行的。

.并发:多个任务在同一段时间内同时执行,但在一个时间点,一个cpu只能执行一个任务。

多线程的概念说明

.优势

    充分发挥多核处理器的优势,将不同线程任务分配给不同的处理器,真正进入“并行计算”状态

.弊端

    新线程会消耗内存控件和cpu时间,线程太多会降低系统运行性能。

ios的三种线程技术

.NSThread

使用NSTHread对象建立线程非常方便,但是,管理多个线程非常困难,不推荐使用。

.CGD - Drand Central Dispatch

基于C语言的覅曾API,用BLOCK定义任务,使用起来非常灵活边界,提供了更多的控制力和操作队列中所不能使用的底层函数。

 GCD的全局队列

为了方便多线程的设计,提供了一个全局队列,供所有app使用

获得全局队列

dispath_queue_t q =dispath_get_global_queue(DISPATH_QUEUE_PRIORITY_DEFAULT,0);

第一个参数为全局队列的优先级:

#define DISPATH_QUEUE_PRIORITY_HIGH 2

#define DISPATH_QUEUE_PRIORITY_DEFAULT 0

#define DISPATH_QUEUE_PRIORITY_LOW(-2)

#define DISPATH_QUEUE_PRIORITY_BACGROUNS INT16_MIN

第二个参数为保留参数

原文地址:https://www.cnblogs.com/fanxinguu/p/4513066.html