E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
IOS多线程
【iOS】GCD详解
初识GCD深入理解GrandCentralDispatch(GCD):
iOS多线程
编程的利器前言1.GCD简介1.1什么是GCD?1.2为什么使用GCD?
cheng_lin0201
·
2024-09-13 06:42
OC
iOS
ios
objective-c
iOS多线程
基础
什么是进程?进程是指系统中正在运行的一个程序,每个进程间是独立的,每个进程均运行在其专用且受保护的内存空间内.什么是线程?一个进程想要执行任务,必须得有线程.(每一个进程至少要有一个线程)一个进程中的所有任务都在线程中执行线程的串行一个线程中的所有任务的执行顺序都是串行的,也就是说,在同一时间内,一个线程只能执行一个任务.只有执行完上一个任务才可以执行下一个;也可以任务,线程是进程中的一条执行路径
星辰流转轮回
·
2024-09-03 04:21
iOS多线程
——概念与原理
1.进程的定义进程是指在系统中正在运行的一个应用程序,在iOS系统中,每个进程之间都是独立的,每个进程都运行在其专用的且受保护的内存中。作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:196800191,加群密码:112233,不管你是小白还是大牛欢迎入驻,分享BAT,阿里面试题、面试经验,讨论技术,大家一起交流学习成长!2.线程的定义线程是进程的基本执行单元,一
iOS发呆君
·
2024-02-02 00:05
iOS多线程
- 死锁原因
Note:在同一个串行队列中执行同步操作会引发死锁。-(void)viewdidLoad{//在主线程中进行同步操作(主线程)dispatch_sync(dispatch_get_main_queue(),^{//dosomething});}要知道死锁的原因,首先要清楚并发、串行队列,异步和同步之间的区别:并发队列将任务(函数)分配到线程执行时,不需要等待函数的返回即可执行下一个任务串行队列需要
L域
·
2024-01-29 10:59
iOS多线程
详解
在iOS开发中,我们经常会使用到多线程技术,用于处理一些比较耗时的操作。在iOS中,有四种多线程的API,接下来我会带领大家一起去了解一下多线程相关的知识,以便帮助大家更好的使用多线程编程。下面先看一下四种API的比较:iOS中常见的多线程方案pthread:基于C语言,可以跨平台使用,需要程序员管理生命周期,使用难度大,所以不怎么使用NSThread:基于OC,面向对象,操作简单,需要程序员
爱看书de图图
·
2024-01-28 13:08
重温01-
iOS多线程
编程
OC中的多线程OC中多线程根据封装程度可以分为三个层次:NSThread、GCD和NSOperation,另外由于OC兼容C语言,因此仍然可以使用C语言的POSIX接口来实现多线程,只需引入相应的头文件:#includeNSThreadNSThread是封装程度最小最轻量级的,使用更灵活,但要手动管理线程的生命周期、线程同步和线程加锁等,开销较大;NSThread的基本使用比较简单,可以动态创建初
那月无痕
·
2024-01-27 02:34
iOS面试—0、技术点
运行时:https://juejin.im/post/5ac0a6116fb9a028de44d717#heading-19多线程:
iOS多线程
:『pthread、NSThread』详尽总结
iOS多线程
weixin_30919235
·
2024-01-25 02:05
面试
runtime
swift
iOS多线程
同步异步、串行并发浅析
先来说一个队列和任务:队列分为串行队列与并行队列任务的执行分为同步执行与异步执行这两两组合就成为了串行队列同步执行,串行队列异步执行,并行队列同步执行,并行队列异步执行而异步是多线程的代名词,异步在实际引用中会开启新的线程,执行耗时操作。那我们先来知道一个非常重要的事情:1.队列只是负责任务的调度,而不负责任务的执行2.任务是在线程中执行的队列和任务的特点:队列的特点:先进先出,排在前面的任务最先
guoguojianshu
·
2024-01-14 23:46
NSOperation queue?
用于处理
ios多线程
开发的问题。网上部分资料提到一点是,虽然是queue,但是却并不是带有队列的概念,放入的操作并非是按照严格的先进现出。
小小鱼类
·
2024-01-13 21:37
iOS多线程
-RunLoop
1、概念RunLoop与线程关联的,是一种事件处理环,用来安排和协调到来的事件,目的就是让其关联的线程在有事件到达时时刻保持运行状态,而当没有事件需要处理时进入睡眠状态从而节约资源,每一个线程都可以有一个RunLoop对象与之对应,并且是在第一次获取它是系统自动创建的,比如主线程关联的RunLoop,我们都知道程序的入口函数是main函数,下面是创建工程后Xcode自动生成的main.m文件的ma
rainbowboy
·
2024-01-13 02:48
浅谈一种规避
iOS多线程
Crash的方案
一般来说,多线程编程因具有以下几个优点,一直被广泛应用:资源利用率更好程序设计在某些情况下更简单程序响应更快但是因为多线程而导致的crash问题,也是令程序员非常头疼的一个问题,因为线程调度执行顺序的不确定性,造成了crash一般都是小概率出现,在开发测试阶段很难发现,而一旦上线面对用户,造成的影响却是不容小觑的。一、Crash的场景有一种特别常见的会造成crash的场景为:多线程读写可变数组/字
酷爽
·
2024-01-11 14:40
iOS
GCD实现线程同步的方法
在
iOS多线程
中我们知道NSOperationQueue操作队列可以直接使用addDependency函数设置操作之间的依赖关系实现线程同步,还可以使用setMaxConcurrentOperationCount
爱笑的猫mi
·
2024-01-07 14:41
iOS多线程
学习小记『GCD的API之dispatch_suspend/dispatch_resume』
3.2.10dispatch_suspend/dispatch_resume当追加大量处理到DispatchQueue时,在追加处理的过程中,有时希望不执行已追加的处理。例如验算结果被Block截获时,一些处理会对这个验算结果造成影响。在这种情况下,只要挂起DispatchQueue即可。当可以执行时再恢复。dispatch_suspend函数挂起指定的DispatchQueue.dispatch
达若漠沙
·
2023-12-31 01:19
IOS - @synchronized详解
@synchronized原理@synchronized是
IOS多线程
同步中性能最差的:却是使用起来最方便的一个,通常我们这么用:@synchronized(self){//code}为了了解其底层是如何实现的
Typeco
·
2023-12-24 01:32
iOS多线程
之超实用理论+demo演示(可下载)
[toc]背景简介在初学iOS相关知识过程中,大多都对多线程有些恐惧的心里,同时感觉工作中用上的概率不大。但是如果平时不多积累并学透多线程,当工作中真的需要用到的时候,就很可能简单百度后把一些知识点稀里糊涂地就用到工作中了,殊不知里面有很多的坑,也有很多技巧需要在理论上先做了解,再结合实战,进一步去体会多线程的魅力和强大。接下来,就对多线程来源的背景进行简单的介绍:在计算的早期,计算机可以执行的最
Dast1Woop
·
2023-12-03 11:17
多线程基础
在学习
iOS多线程
应用之前,我们先来学习一下什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程的实际运作单位,一条线程指的是进程中一个单一顺序的控制流。
浪的出名
·
2023-12-01 20:36
iOS多线程
之pthread的简单使用
前言pthread是c语言编写的,基本用不到,了解一下就好.线程创建代码第一步:先导入#import第二步:创建线程//参数一:线程地址//参数二:线程属性//参数三:指向函数的指针//参数四:函数参数pthread_tpthread;pthread_create(&pthread,NULL,test,NULL);void*(test)(void*param){NSLog(@"%@",[NSThr
Mr_fei
·
2023-11-28 23:10
iOS多线程
编程
OC中的多线程OC中多线程根据封装程度可以分为三个层次:NSThread、GCD和NSOperation,另外由于OC兼容C语言,因此仍然可以使用C语言的POSIX接口来实现多线程,只需引入相应的头文件:#include。NSThreadNSThread是封装程度最小最轻量级的,使用更灵活,但要手动管理线程的生命周期、线程同步和线程加锁等,开销较大;NSThread的基本使用比较简单,可以动态创建
红太羊_8225
·
2023-11-27 11:06
iOS多线程
——pthread、NSThread
pthreadNSThread多线程的常见方案pthreadpthread简介pthread使用方法pthread其他相关方法NSThread创建、启动线程线程相关用法线程状态控制方法线程之间的通信NSThread线程安全和线程同步NSThread非线程安全NSThread线程安全多线程的常见方案技术方案特点使用语言线程生命周期使用频率pthread一套通用的多线程API适用于Windows/Li
不学会Core Data不改名
·
2023-11-23 16:43
ios
cocoa
macos
objective-c
iOS 多线程
前言:这可能是史上最全面的一篇
iOS多线程
博客了(王婆卖瓜一番),从多线程的基本概念,进程的概念,引出iOS中的四种多线程方案pthread、NSThread、NSOperation和GCD,每一部分都有详细的代码和解释说明
可地出溜
·
2023-11-04 12:31
iOS多线程
进程:进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内线程:1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程)一个进程(程序)的所有任务都在线程中执行进程和线程的比较1.线程是CPU调用(执行任务)的最小单位2.进程是CPU分配资源和调度的单位3.一个程序可以对应多个进程,一个进程中可以有多个线程,但至少要有一个线程4.同一个进程
雪丹妮_66865
·
2023-11-02 23:23
iOS多线程
:『GCD』详尽总结
为了不辜负大家的喜欢,也为了更好的让大家了解
iOS多线程
,以及GCD的相关知识,我对这篇文章进行了重新梳理,在原有文章的基础上修改了原文存在的问题,并增加了
林希品
·
2023-11-02 12:47
iOS多线程
-GCD的常见用法
复习下线程的基础知识,这里主要是参考文顶顶多线程篇复习写的。1、线程间通信示例从子线程回到主线程#import"ViewController.h"@interfaceViewController()@property(strong,nonatomic)UIImageView*imageView;@end@implementationViewController-(void)viewDidLoad{
学习天亦
·
2023-10-31 14:51
iOS多线程
- GCD中的栅栏函数
一、什么是栅栏函数dispatch_barrier_async函数,在进程管理中起到一个栅栏的作用,它等待所有位于barrier函数之前的操作执行完毕后执行,并且在barrier函数执行之后,barrier函数之后的操作才会得到执行,该函数需要同dispatch_queue_create函数生成的DISPATCH_QUEUE_CONCURRENT队列一起使用。二、dispatch_barrier_
赑屃王者
·
2023-10-30 14:57
谈谈
iOS多线程
的锁
image前言iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。目录第一部分:什么是锁第二部分:锁的分类第三部分:性能对比第四部分:常见的死锁第五部分:总结(附Demo)正文一、什么是锁在过去几十年并发研究领域的出版物中,锁总是扮演着坏人的角色,锁背负的指控包括引起死锁、锁封护(l
KingWorld
·
2023-10-29 14:21
iOS多线程
(二)
常见问题解惑1.问题一1.1以下代码打印结果-(void)viewDidLoad{[superviewDidLoad];dispatch_queue_tqueue=dispatch_queue_create("myqueue",DISPATCH_QUEUE_CONCURRENT);dispatch_async(queue,^{NSLog(@"task1");[selfperformSelector
大虾咪
·
2023-10-28 03:48
472,
iOS多线程
NSOperation 与 GCD的区别(面试点:GCD 和 NSOperation的区别主要表现在以下几方面: 1) GCD是一套 C 语言API,执行和操作简单高效,因...
GCD和NSOperation的区别主要表现在以下几方面:1)GCD是一套C语言API,执行和操作简单高效,因此NSOperation底层也通过GCD实现,这是他们之间最本质的区别.因此如果希望自定义任务,建议使用NSOperation;依赖关系,NSOperation可以设置操作之间的依赖(可以跨队列设置),GCD无法设置依赖关系,不过可以通过同步来实现这种效果;3)KVO(键值对观察),NSO
枫叶1234
·
2023-10-27 20:31
iOS多线程
之pthread
什么是pthreadPOSIX线程(POSIXthreads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、MacOSX等)中,都使用Pthreads作为操作系统的线程。pthread的使用一般情况在iOS开发中我们很少使用pthread来创建线程,pthread常见跨平台框架中多线程创建。pthread是c语
CoderJay
·
2023-10-27 14:19
iOS多线程
-NSOperation基本操作
复习下线程的基础知识,这里主要是参考文顶顶多线程篇复习写的。一、并发数(1)并发数:同时执⾏行的任务数.比如,同时开3个线程执行3个任务,并发数就是3(2)最大并发数:同一时间最多只能执行的任务的个数。(3)最⼤大并发数的相关⽅方法-(NSInteger)maxConcurrentOperationCount;-(void)setMaxConcurrentOperationCount:(NSInt
学习天亦
·
2023-10-22 07:29
iOS多线程
的锁,你知道多少?
前言iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。目录第一部分:什么是锁第二部分:锁的分类第三部分:性能对比第四部分:常见的死锁第五部分:总结(附Demo)正文一、什么是锁在过去几十年并发研究领域的出版物中,锁总是扮演着坏人的角色,锁背负的指控包括引起死锁、锁封护(luyang
iOS__开发者皮皮峰
·
2023-10-20 22:17
iOS多线程
面试题:使用两个线程交替打印奇偶数
多线程输出结果是不可控的,需要实现的结果是使用两个线程交替打印奇偶数1.两个线程同时操作一个变量如:_number=0;dispatch_queue_tqueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0);dispatch_async(queue,^{while(_number<100){_number++;NS
某非著名程序员
·
2023-10-17 05:50
iOS多线程
iOS多线程
iOS中多线程的方案?有什么优缺点?
喜歡w
·
2023-10-14 05:25
iOS多线程
之NSOperationQueue、NSOperation
NSOperationQueue操作队列根据其优先级和准备情况执行排队的NSOperation对象。添加到操作队列后,操作将保留在其队列中,直到它报告已完成其任务。添加后,您无法直接从队列中删除操作。从多个线程使用单个NSOperationQueue对象是安全的,没必要创建额外的lock,NSOperationQueue类的属性都是默认atomic的,关于锁和线程安全的内容在后续的文章中详叙NSO
尛焱
·
2023-10-05 15:49
iOS 多线程:『GCD』详尽总结
为了不辜负大家的喜欢,也为了更好的让大家了解
iOS多线程
,以及GCD的相关知识,我对这篇文章进行了重新梳理,在原有文章的基础上修改了原文存在的问题,并增加了更多关于G
vim
·
2023-10-03 15:13
iOS多线程
线程的定义:线程是进程的基本执行单元,一个进程的所有任务都在线程中执行,程序启动会默认开启一条线程,这条线程被称为主线程或UI线程。通常线程用于处理哪些耗时的操作,来缓解主线程的压力。线程和进程是有很大区别的:1、同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。2、同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。线程的优点:能适当提高程序的执
大橘猪猪侠
·
2023-10-02 06:15
iOS 多线程详解
iOS多线程
详解Slogan:可能是最通俗易懂的
iOS多线程
详细解析文章1.基础概念1.1进程进程是计算机中已运行程序的实体,是线程的容器维基百科-进程。
极客学伟
·
2023-09-30 10:43
iOS多线程
之GCD
1.GCD相关概念任务:就是执行操作的意思,就是你在线程中执行的那段代码。在GCD中是放在block中的。执行任务有两种方式:『同步执行』和『异步执行』。两者的主要区别是:是否等待队列的任务执行结束,以及是否具备开启新线程的能力。同步执行(sync):同步添加任务到指定的队列中,在添加的任务执行结束之前,会一直等待,直到队列里面的任务完成之后再继续执行。只能在当前线程中执行任务,不具备开启新线程的
践行者_Leng
·
2023-09-20 23:11
iOS多线程
使用总结
image一.概述与实现方案1.线程与进程多线程在iOS中有着举足轻重的地位,是每一位开发者都必备的技能,当然也是面试常考的技术点,本文主要是探究我们实际开发或者面试中遇到的多线程问题。比如什么是线程?它跟进程是什么关系,队列跟线程什么关系,同步、异步、并发(并行)、串行这些概念又怎么来理解,iOS有哪些常用多线程方案,以及线程同步技术有哪些等等。线程(英语:thread)是操作系统能够进行运算调
QiShare
·
2023-09-20 04:05
iOS多线程
(6)-Lock
为什么用锁:多线程编程中,如果对同一数据源进行读写操作就会造成不可预知的结果,所以我们应该尽量避免并发操作资源在线程之间共享,以减少线程间的相互作用,就需要一些同步工具,来确保当它们交互的时候是安全的。锁的种类:iOS开发中常用的锁有如下几种:@synchronized同步锁NSLock对象锁NSRecursiveLock递归锁NSConditionLock条件锁pthread_mutex互斥锁(
WorldPeace_hp
·
2023-09-13 07:28
iOS 加锁方式
iOS多线程
编程中,经常碰到多个线程访问共同的一个资源,在线程相互交互的情况下,需要一些同步措施,来保证线程之间交互的时候是安全的。
可乐小子
·
2023-09-11 12:45
iOS多线程
总结
前言:本文章摘自作者devsongxx,链接:https://www.jianshu.com/p/8ff1eaebbc6e(著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。),从多线程的基本概念,进程的概念,引出iOS中的四种多线程方案pthread、NSThread、NSOperation和GCD,每一部分都有详细的代码和解释说明;在GCD中,引出同步、异步、串行队列(包括主
贾小敏1234
·
2023-09-01 15:38
iOS多线程
之NSThread
简介苹果对Pthreads进行了面向对象的封装NSTherad,使用起来比pthread更加面向对象,简单易用,可以直接操作线程对象。不过也需要需要程序员自己管理线程的生命周期(主要是创建),我们在开发的过程中偶尔使用NSThread。比如我们会经常调用[NSThreadcurrentThread]来显示当前的进程信息。使用创建和启动线程直接使用是-(instancetype)init;没有意义的
炒河粉儿
·
2023-08-29 18:09
iOS多线程
安全(一)
多线程访问同一个对象,经常会出现意料之外的结果。这里就从atomic与nonatomic讲起。atomicatomic能从一定程度上保证线程安全,但是大部分的情况下并没不能完全保证线程安全。首先我们看看如果将一个属性设置为atomic的时候,编译器帮我们做了什么?生成原子操作的getter和setter方法当线程A执行setter方法时,线程B如果需要执行getter方法必须等线程ASetter方
bluedaquiri
·
2023-08-28 13:52
iOS多线程
-自定义NSOperation(Cell下载图片缓存)
复习下线程的基础知识,这里主要是参考文顶顶多线程篇复习写的。一、cell下载图片思路–无沙盒(内存)缓存主要解决下列问题1、下载操作放在子线程不会卡UI。2、使用operations字典解决重复下载问题,每个cell对应一个Operation3、从字典中移除下载操作(防止operations越来越大,保证下载失败后,能重新下载)4、存放图片到images字典中,tableView要刷新对应行数的c
学习天亦
·
2023-08-21 11:28
IOS多线程
知识总结/队列概念/GCD/串行/并行/同步/异步
进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间;线程:线程是进程中一个独立的执行路径(控制单元);一个进程中至少包含一条线程,即主线程。队列:dispatch_queue_t,一种先进先出的数据结构,线程的创建和回收不需要程序员操作,由队列负责。串行队列:队列中的任务只会顺序执行(类似跑步)dispatch_queue_tq=dispatch_que
扛支枪
·
2023-08-21 03:38
iOS应用之间的通信
详细可以参考我的
iOS多线程
技术的文章。image.pngiOS平台应用之间的通信由于沙盒机制的存在,iOS应用之间的通信就只能通过间接的方式。正如苹果官方文档##Inter-AppCommun
破晓霜林
·
2023-08-20 16:12
iOS多线程
-创建线程
复习下线程的基础知识,这里主要是参考文顶顶多线程篇写的。一、创建和启动线程简单说明一个NSThread对象就代表一条线程1、创建线程方式一、创建、启动线程NSThread*thread=[[NSThreadalloc]initWithTarget:selfselector:@selector(run)object:nil];[threadstart];//线程一启动,就会在线程thread中执行s
学习天亦
·
2023-08-17 22:10
iOS多线程
-NSThread简单介绍
线程是进程中的一条执行路径,在一个线程中任务的执行是串行的,同一时间内,一个线程只能执行一个任务多线程在多线程开发中,耗时操作我们一般放在子线程。耗时操作会卡住主线程,严重影响UI流畅度。一个进程中可以开启多条线程,多条线程可以并发(同时)执行不同的任务。多线程特点同一时间,CPU(单核)只能处理1条线程,只有一条线程在工作(执行)。多线程并发(同时)执行,其实是CPU(单核)快速在多条线程之间调
Eddy_0
·
2023-08-09 13:00
iOS线程间通信总结
iOSNSNotification使用及原理实现☞iOS内存管理浅析☞iOSblock深入浅出☞iOSdispatch浅析☞iOSrunloop由浅入深☞iOSruntime详解☞iOS网络编程浅析☞iOS各种锁总结☞
iOS
FengyunSky
·
2023-08-01 05:25
iOS多线程
1、什么是多线程多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。原理:同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象注意:多线程
ProgramDouglas
·
2023-07-31 08:38
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他