首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
gcd
订阅
身是眼中仔
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
iOS-线程安全
多线程技术对于计算机开发带来了巨大的性能提升,同样也来带了新的伤痛——线程安全问题。在开发中,稍不注意,我们就可能写出让代码陷入不安全的境地,线程锁是一种用来帮助我们保护临界资源的手段。事实上,现代语言提供了多种不同的线程锁来保护代码。通过深入挖掘,可以发现线程锁的核心无非是Co
iOS-多线程
本文主要介绍了 iOS的多线程方案, 多线程安全方案, 多读单写方案. 篇幅稍长,还请耐心看完. 进程 理论上,每个iOS App都是一个进程, 有自己独立的虚拟空间来存储自己的运行数据. 线程 每个
iOS多线程使用总结
一.概述与实现方案 1. 线程与进程 多线程在iOS中有着举足轻重的地位,是每一位开发者都必备的技能,当然也是面试常考的技术点,本文主要是探究我们实际开发或者面试中遇到的多线程问题。比如什么是线程?它
iOS 多线程知识体系构建(十二):GCD 源码:dispatch_barrier_async 函数
dispatch_barrier_async 提交 barrier block 以在指定的调度队列上异步执行,同 dispatch_async 函数一样不会阻塞当前线程,此函数会直接返回并执行接下来的语句。 首先四个任务都不会阻塞主线程,两条 🔞 的打印会首先执行完毕,然后是…
iOS 开发中使用的各种锁的总结(1)
OSSpinLock API 很简单,首先看下使用示例。 可以确定的是 ⏰线程 和 ⚽️线程 不会有任何一个可以打印 20000。 ⏰线程 和 ⚽️线程 两者的打印都到了 10000 以上。 ⏰线程 或 ⚽️线程 其中一个打印在 10000 以上一个在 10000 以下。 情况…
iOS 多线程知识体系构建(二):Pthreads、NSThread篇
Pthreads 一般指 POSIX 线程。 POSIX 线程(POSIX Threads,常被缩写为 Pthreads)是 POSIX 的线程标准,定义了创建和操纵线程的一套 API。 实现 POSIX 线程标准的库常被称作 Pthreads,一般用于 Unix-like P…
iOS 多线程知识体系构建(十一):GCD 源码:dispatch_group函数(超详细分析)
dispatch_group 可以将一组 GCD 任务关联到一起,可以监听这一组所有任务的执行情况,当组内所有任务异步执行完毕后我们可以得到一个或多个回调通知(使用 dispatch_group_notify 添加几个就能执行几个回调通知)。 dispatch_group_s …
iOS 从源码解析Run Loop (十):Run Loop 与GCD、FPS、CADisplayLink
在 Run Loop 和 GCD 的底层双方各自都会相互用到对方。首先我们先看一下读 run loop 源码的过程中用到 GCD 的地方,前面我们学习 GCD 的时候已知使用 dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, …
【iOS】个人对GCD信号量的一些误解...
以前认为信号量的初始值是指线程的最大并发数,不可更改的,但是初始化为0,不就是线程最大并发数为0吗?不就是不能有线程可以工作吗?按道理应该会一直阻塞住这个子线程才对,那这种用法有什么意义呢?
iOS 信号量使用详解
如上述代码可知,总共异步执行n个任务,但是由于我们设置了值为m的信号量,每一次执行任务的时候都会导致信号量的减1,而在任务结束后使信号量加1,当信号量减到0的时候,说明正在执行的任务有m个,这个时候其它任务就会阻塞,直到有任务被完成时,剩余的任务才会执行。 有些时候,我们需要阻…