队列概念:队列只负责任务的调度,而不负责任务的执行,任务是在线程中执行的。(可以理解成任务是放在队列里面的,要被调度到线程中去执行)特点:队列先进先出,排在前面的任务最先执行。分类:队列分为串行、并行、主队列、全局队列。串行队列:任务按照顺序被调度,前一个任务不执行完毕,队列不会调度。并行队列:只要有空闲的线程,队列就会调度当前任务,交给线程去执行,不需要考虑前面是都有任务在执行,只要有线程可以利
转载
2023-11-27 06:35:40
92阅读
iOS 多线程小结在 iOS 系统中,应用打开后会生成一个进程,这个进程保存程序运行过程中的资源,进程会开启一个主线程执行代码。在 iOS 系统中,所有的 UI 操作都应放在主线程中进行,所以主线程又称作 UI 线程,除了主线程之外的线程,统称为子线程。为了避免主线程阻塞而造成应用卡顿,所有的耗时操作都应放在子线程中进行。PthreadsPOSIX 线程(POSIX threads),简称Pthr
转载
2023-08-21 09:15:24
68阅读
ios中的多线程,除了可以用NSThread,还可以使用gcd。gcd的功能还是十分强大的,下面来详细了解一下。gcd是系统一个提供的一个线程队列,当我们需要使用多线程时,只要向已知的队列中添加任务。队列就会按照一定机制去执行这些任务。队列分3类分别是: 连续队列: 顺序执行任务 &nbs
转载
2023-10-24 18:09:47
70阅读
在iOS开发中,遇到耗时操作,我们经常用到多线程技术。Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法,只需定义想要执行的任务,然后添加到适当的调度队列(dispatch queue)。GCD会负责创建线程和调度你的任务,系统直接提供线程管理。一、队列:基本概念:1.GCD的一个重要概念是队列,它的核心理念:将长期运行的任务拆分成多个工作
转载
2023-12-07 14:02:17
62阅读
一.NSThread建立一个线程方便,但是要使用NSThread管理多个线程非常困难,只要记住以下几个方法.(1) [NSThread currentThread] //跟踪任务所在线程,适用于这三种技术.
(2) [NSThread sleepForTimeInterval:] //睡眠多长时间(秒)二.GCD是基于C语言的底层API 用Block定义任务 提供了更多的控制能力以及操作队列中所不
转载
2023-09-07 21:41:25
66阅读
任务就是执行操作的意思,也就是在线程中执行的那段代码。在 GCD 中是放在 block 中的。执行任务有两种方式:同步执行(sync)和异步执行(async)同步(Sync):同步添加任务到指定的队列中,在添加的任务执行结束之前,会一直等待,直到队列里面的任务完成之后再继续执行,即会阻塞线程。只能在当前线程中执行任务(是当前线程,不一定是主线程),不具备开启新线程的能力。异步(Async):线程会
转载
2023-07-20 21:53:20
43阅读
最近的项目遇到了很多多线程的问题,借此机会对GCD进行了一番学习并总结。首先说一下什么是GCD,GCD全称 Grand Central Dispatch,是异步执行任务的技术之一。开发者只需要定义想要执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。说到多线程,我们有必要了解一下GCD的两个核心概念。一、任务和
转载
2023-11-11 06:45:33
43阅读
如何理解线程和队列什么是线程线程定义:线程是进程的基本执行单元,一个进程的所有任务都在线程中执行,进程想要执行任务,必须且至少有一个线程同步任务 :同步意味着阻塞,会阻塞当前线程,直到把该任务执行完了才会继续执行其他的任务异步任务:异步就意味着该任务不会阻塞当前线程的执行情况, 同时异步表示该任务具备在新线程执行的能力,但是是否开启新线程,由系统决定,比如串行队列的情况,任务按顺序执行,开启多个新
转载
2024-01-13 13:00:22
51阅读
串行并行异步同步的概念很容易让人混淆,关于这几个概念我在第一篇GCD中有解释,但是还不够清晰,所以这里重写一篇博客专门对这几个概念进行区分:先说一下队列和任务:(1)队列分为串行和并行,任务的执行分为同步和异步,异步是多线程的代名词,异步在实际引用中会开启新的线程,执行耗时操作。(2)队列只是负责任务的调度,而不负责任务的执行,任务是在线程中执行。以上两点对了解串行、并行、同步、异步非常重要!再说
转载
2023-07-13 14:06:32
71阅读
进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间;线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程。队列:dispatch_queue_t,一种先进先出的数据结构,线程的创建和回收不需要程序员操作,由队列负责。串行队列:队列中的任务只会顺序执行(类似跑步)dispatch_queue_t q = dispatch_
转载
2023-07-18 00:45:06
97阅读
· 线程池是对象池的一个有用的例子,它能够节省在创建它们时候的资源开销。并且线程池对系统中的线程数量也起到了很好的限制作用。· 线程池中的线程数量必须仔细的设置,否则冒然增加线程数量只会带来性能的下降。· 在定制ThreadPoolExecutor时,遵循KISS原则,通常情况下会提供最好的性能。 线程池类为java.util.concurrent.T
转载
2023-12-11 12:34:25
67阅读
1.什么时候使用NSMutableArray,什么时候使用NSArray?当数组在程序运行时,需要不断变化的,使用NSMutableArray,当数组在初始化后,便不再改变的,使用NSArray。NSArray是线程安全的,NSMutableArray不是线程安全的,多线程使用到NSMutableArray需要注意。 2.给出委托方法的实例,并且说出UITableVIew的Data So
iOS中多线程知识总结:进程、线程、GCD、串行队列、并行队列、全局队列、主线程队列、同步任务、异步任务等(有示例代码)进程正在运行中的程序被称作进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间。线程进程中的一个对立的执行路径被称为线程,一个进程中至少包含一条线程,该线程被称为主线程。多线程多创建一条或者多条线程的,目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代
转载
2023-08-04 07:32:59
213阅读
iOS中我们常使用dispatch_queue和NSOperationQueue来实现多线程。而串行和并行、同步和异步,这四个词同时出现的地方是dispatch_queue。NSOperationQueue贴心的隐藏了这些东西,已经不需要我们来操心了。所以下面会使用dispatch_queue来展开。 线程,线程是程序执行流
转载
2023-09-01 19:31:07
57阅读
GCDGCD(GRAND CENTRAL DISPATCH),就是牛逼的中枢调度器。C语言写的,提供了多种函数。1.任务和队列GCD两个核心的概念就是任务和队列。 任务:执行什么操作的。 队列:专门来存放任务的。 GCD的使用很简单,也就是先把任务定制好,然后放在队列中,GCD会自动的将任务从队列中取出来,然后放到对应的线程中去执行,任务的取出遵循先进先出和后进后出的原则。2.同步、异步// 同步
转载
2024-04-07 19:16:56
31阅读
ios 队列线程问题通常涉及在多线程环境中管理任务队列,以确保任务按顺序执行并提高应用性能。在这篇博文中,我将分享解决“ios 队列线程”问题的详细过程,涵盖环境预检、部署架构、安装过程、依赖管理、版本管理和最佳实践。
### 环境预检
在开始之前,需要先确认开发和运行环境。以下是环境硬件配置的详细表格:
| 硬件组件 | 配置 |
|------------|----
本篇博客共分以下几个模块来介绍GCD的相关内容:多线程相关概念多线程编程技术的优缺点比较?GCD中的三种队列类型The main queue(主线程串行队列)Global queue(全局并发队列)Custom queue (自定义队列)Group queue (队列组)GCD中一些系统提供的常用dispatch方法多线程相关概念进程与线程
进程概念: 进程是程序在计算机上的一次执行活动,打
转载
2024-02-03 03:49:17
43阅读
iOS多线程里,这七个对象,1进程,2线程,3同步函数,4异步函数,5并行队列,6串行队列,7主线程主队列 可以说是几个非常核心的概念,动代码之前,理解这几个概念的区别和联系是非常重要的@2017-1月 1用面向对象的观点去理解,进程和线程,同步和异步,并行和串行,还有主线程的主队列,七者关系 进程:程序不运行时就是一堆代码,运行时就是一堆的进程的组
转载
2024-06-07 23:27:08
30阅读
这篇文章主要介绍了详解iOS中多线程app开发的GCD队列的使用,代码基于传统的Objective-C,需要的朋友可以参考下
GCD的基本使用 一、主队列介绍 主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行。 提示:如果把任务放到主队列中进行处理,那么不论处理函数是异步的还是同步的都不会开启新的线程。 获取
队列特点:先进先出的数据结构分类:串行队列 并行队列 全局并行队列 主队列任务:就是block代码快要执行的代码 同步执行(sync) 异步执行(async)多线程 简单理解就是除主线程外开辟了其他线程、增加执行效率。大白话就是代码有多条执行路径。对于单核的iOS系统、多线程之间其实是并发的而不是多核的并行。也就是单核的iOS系统,各个线程在单位时间是来回切换的、造成了并行的假象。GCD是基于c语
转载
2023-09-01 15:02:17
99阅读