首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
阿发发发发
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
iOS底层探索之多线程(十七)——通过 Swift的Foundation源码分析锁(NSLock、NSCondition、NSRecursiveLock)
iOS 开发,你对各种锁了解多少?看我这篇就够了!通过 Swift的Foundation源码分析锁的底层封装!
iOS多线程:『GCD』详尽总结
什么是 『GCD』 ?我们先来看看百度百科的解释简单了解下相关概念。 程序员只需要告诉 GCD 想要执行什么任务,不需要编写任何线程管理代码。
栅栏函数 iOS之多线程GCD(三)
场景需求:需要异步完成三个任务。任务一、任务二、任务三。要求:任务三必须在任务一、任务二完成之后触发。这就需要使用dispatch_barrier_async。 特点:像一堵围墙、成为任务的分割线。 分析:任务一和任务二相互交错执行、由于栅栏函数存在、任务三最后执行。这三个任务…
队列组 iOS之多线程GCD(二)
我们经常遇到这样的面试题:异步下载几张图片、等待所有图片下载完成、合并一张大图、更新UI等等之类的需求。今天我们就用队列组解决这个问题。这里要用到dispatch_group_notify函数。 分析:任务一、任务二、任务三采用异步下载(有各自的线程)、所以下载过程中是交错的而…
多线程-GCD
是异步执行任务的技术之一。它将应用程序中线程管理的代码放在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,至于具体是哪个线程执行、如何执行该任务,开发者不需管,交由GCD来管理。 因此GCD优于其他异步技术的点:线程管理交由系统管理,效率…
任务与队列 iOS之多线程GCD(一)
多线程 简单理解就是除主线程外开辟了其他线程、增加执行效率。大白话就是代码有多条执行路径。对于单核的iOS系统、多线程之间其实是并发的而不是多核的并行。也就是单核的iOS系统,各个线程在单位时间是来回切换的、造成了并行的假象。 GCD是基于c语言封装的、在这里只谈谈用法。用法就…
iOS 多线程之线程安全
在单线程的情形下,任务依次串行执行是不存在线程安全问题的。在单线程的情形下,如果多线程都是访问共享资源而不去修改共享资源也可以保证线程安全,比如:设置只读属性的全局变量。线程不安全是由于多线程访问造成的,是由于多线程访问和修改共享资源而引起不可预测的结果。而线程锁可以有效的解决…
iOS 中的 GCD 实现详解
以下仅是对Dispatch Queue的分析。 GCD中的队列Dispatch Queue是通过链表和结构体实现的。 FIFO队列的管理是通过dispatch_async等函数来实现的(操作头尾节点)。 在GCD中,可执行的任务有两种方式实现:Block、Function。因此…
iOS 多线程详解
1. 基础概念 进程是计算机中已运行程序的实体,是线程的容器维基百科-进程。每个进程之间是相互独立的,每个进程均运行在器专用且收保护的内存空间内。 把工厂作为一个系统,进程类似于车间。 线程是操作系统能够进行运算调度的最小单位维基百科-线程。一个进程的所有任务都在线程中执行。一…