iOS-多线程
靠近星星的太阳
一专多能、刻意练习、终身成长。
展开
-
iOS开发-dispatch_time_t
dispatch_time_t 的定义: typedef uint64_t dispatch_time_t; /** 描述:时间的抽象表示; DISPATCH_TIME_NOW(0)表示“现在” DISPATCH_TIME_FOREVER(~0)表示“无穷大” 两者之间的每个值都是不透明的编码。 */ dispatch_time_t 的创建: dispatch_time_t dis...原创 2019-12-16 15:16:00 · 1218 阅读 · 0 评论 -
iOS开发-dispatch_semaphore(信号量)
前言 假设,现在系统有两个空闲资源可以被利用,但同一时间却有三个线程要进行访问,这种情况下,该如何处理呢? 或者我们需要并发异步下载很多资源,每次下载都可能会开辟一个线程,线程一多就会影响cpu,那么我们就可以用信号量控制一下最大开辟线程数。简单来说就是使用信号量来控制并发。 信号量是一个整形值并且具有一个初始计数值,并且支持两个操作:信号通知和等待。 信号量函数 1、创建信号量: ...原创 2019-11-30 19:32:04 · 561 阅读 · 0 评论 -
iOS-GCD多线程
1、GCD基本知识 学习 GCD 之前,先来了解 GCD 中两个核心概念:任务和队列。 任务:当前执行的操作,换句话说就是现在线程中执行的那段代码,在 GCD 中是放在 block 中的。 任务的执行有两种方式:同步执行(sync)和异步执行(async)。两者的主要区别是:是否等待队列的任务执行结束,以及是否具备开启新线程的能力。 同步执行(sync): 同步添加任务到指定的队列中,...原创 2018-11-13 12:06:21 · 182 阅读 · 0 评论