GCD有两个用来执行任务的函数,queue是队列的意思,block中写我们要执行的任务一种是同步的方式去执行任务dispatch_sync(dispatch_queue_t _Nonnull queue, ^{ }); 一种是异步的方式去执行任务dispatch_async(dispatch_queue_t _Nonnull queue, ^{
转载 2024-07-13 09:35:28
49阅读
 GCD基本概念    优势:自动利用更多的CPU内核,为多核的并行提出解决方案,自动管理线程的生命周期    核心概念:任务、队列 任务:执行什么操作 队列:执行什么任务    类型:并发、串行 将任务添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行,任务的取出遵循队列的&nbs
转载 2024-10-23 11:27:46
62阅读
for循环里的异步操作开发中经常会遇到这样一些情况,比如: 1.登录失败后的多次登录重连场景。 2.在一个for循环遍历里,有多种异步操作,需要在所有的异步操作完成后,也就是for循环的遍历结束后,再去执行其他操作,但是不能卡主线程,这时候就需要用其他方法了。我遇到的需求是,在一个for循环里有数据库的查询操作以及网络请求操作,然后将数据库的查询和网络请求的结果添加到一个临时数组中,最后等for循
GCD 核心概念:将任务添加到队列,指定任务执行的方法任务 使用block封装block 就是一个提前准备好的代码块,在需要的时候执行队列(负责调度任务) 串行队列:一个接一个的调度任务并发队列:可以同时调度多个任务任务执行函数(任务都需要在线程中执行!) 同步执行:当前指令不完成,不会执行下个指令异步执行:当前指令不完成,同样可以执行下一条指令总结: -开不开线程,取决于执行任务的函数,同步不
转载 2024-05-14 22:30:58
137阅读
近期项目中用到RS232接口和RS485接口,所以在网上搜集了一些资料对常见串口标准进行了归纳总结。  RS232接口:计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进
          Grand Central Dispath-GCD是Apple开发的一个多核编程的解决方法,基本概念就是dispatch queue(调度队列),queue是一个队列,它接收任务,并将任务以先到先执行的顺序来执行。GCD的底层是用线程实现。一. GCD的三种队列(用户队列、全局队列、主队列):首先,Dispatch Q
转载 2024-05-31 13:51:46
120阅读
# iOS GCD串行队列执行任务 在iOS开发中,GCD(Grand Central Dispatch)是一个强大的并发编程工具。通过使用GCD,开发者可以轻松地管理多线程任务,提升应用的响应速度,优化资源的使用。本文将重点介绍GCD中的串行队列,并通过代码示例演示其用法。 ## 什么是GCDGCD是苹果在iOS和macOS系统中提供的一种多线程编程的解决方案。它通过任务的提交和执行来
原创 9月前
58阅读
队列(配合任务, 决定了任务的执行方式, 串行还是并发)串行队列(DISPATCH_QUEUE_SERIAL) :每次只有一个任务被执行。让任务一个接着一个地执行。(只开启一个线程,一个任务执行完毕后,再执行下一个任务)具备开启已经被创建的线程的能力并发队列(DISPATCH_QUEUE_CONCURRENT) :放到并行队列的任务,GCD 也会 FIFO的取出来,但不同的是,它取出来一个就会放到
struct 字段 在大多数语言中 struct 字段被用来定义结构体,在swift 中也一样,被定义额结构体,但是swift中的struct更强大,突然发现在swift中Sting类其实是个结构体,甚至swift Foundation框架的SDK,诸如String,Array,Dictionary都是基于struct实现的。如图: ( ⊙ o ⊙ )是的你没看错,在String结构体中定义了**
转载 2023-07-26 13:40:15
77阅读
GCD的队列能够分为2大类型,分别为串行队列和并发队列 串行队列(Serial Dispatch Queue): 一次仅仅调度一个任务,队列中的任务一个接着一个地运行(一个任务运行完成后。再运行下一个任务) 创建一个队列 dispatch_queue_t q = dispatch_queue_cre
转载 2017-07-22 11:12:00
156阅读
2评论
GCD的队列能够分为2大类型,分别为串行队列和并发队列 串行队列(Serial Dispatch Queue): 一次仅仅调度一个任务,队列中的任务一个接着一个地运行(一个任务运行完成后,再运行下一个任务) 创建一个队列 dispatch_queue_t q =dispatch_que...
转载 2016-01-18 14:07:00
129阅读
2评论
GCD概念理解:同步异步,并行串行 GCD核心概念: 1,任务和队列。 任务:要做什么 队列:存放任务。 GCD使用步骤: 1,创建队列 2,封装任务,把任务添加到队列中。    封装任务的函数: 同步函数:  dispatch_sync  该函数不具备开辟线程的能力,不能开辟线程。       任务执行的方式: 同步 异步函数:dispatch_async 该函数具备开辟线程的能力,可以开辟
原创 2021-07-02 15:38:23
490阅读
接着上面的GCD封装,以下进行列子验证 1.导入GCD.h 2.创一个串行队列: - (void)serailQueue{ //创建出队列 GCDQueue *queue = [[GCDQueue alloc]initSerial]; //运行队列中的线程 [queue execute:^{ NSL
转载 2017-05-01 17:50:00
259阅读
2评论
转载 2013-07-26 18:51:00
109阅读
- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    #warning 1.队列概念     
转载 2023-09-30 00:39:09
273阅读
GCD简介        GCD(Grand Central Dispatch)是苹果为实现并发编程提供的新技术。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。但是GCD比之NSOpertionQueue更底层更高效。     
转载 2023-09-28 14:03:14
175阅读
多线程中的队列有: 串行队列,并发队列,全局队列(并发),主队列(串行)。执行的方法有:同步执行和异步执行。提到多线程:pthread,NSThread,GCD,NSOperation 其中phtread是跨平台的。 GCD和NSOperation都是常用的,后者是基于前者的。两者区别: GCD的核心概念是将一个任务添加到队列,指定任务执行的方法,然后执行。 NSOperation则是直接
转载 2023-11-01 16:20:38
211阅读
GCD串行并行同步异步组合 1、异步函数和并行队列注意:这些任务都是在创建完之后才执行。异步函数+并发队列,可以新建线程,各线程也是并发执行的。1 //第一种:系统方法创建并发队列(全局队列) 2 /** 3 * <#Description#> 4 * 5 * @param identifi
 参考:http://www.cocoachina.com/bbs/read.php?tid-1710638.html1.串行队列与并行队列 队列就是对线程的封装,在线程的基础上加上了任务容器。串行队列和并行队列,本质讲它们并无区别,但是它们允许的行为有很大区别。串行队列,你做完一个任务,才允许你从里面执行下一个任务。并行队列,无次限制,你可以一次性取完,你也可以一次性只取一个
转载 2023-10-04 00:02:36
154阅读
GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制,也是目前苹果官方推荐的多线程开发方法。相对于 NSThread 和 NSOperation,GCD抽象层次最高,使用起来也最简单,只是它基于C语言开发,并不像NSOperation是面向对象的开发,而是完全面向过程的。这种机制相比较于前面两种多线程开发方式最显著的优点就是它对于多核运算更加有效。 GCD
  • 1
  • 2
  • 3
  • 4
  • 5