首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
低调的默认名
掘友等级
iOS酱油工程师
|
北京砖厂
国家一级iOS爱好者,Flutter小学生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
35
文章 35
沸点 0
赞
35
返回
|
搜索文章
最新
热门
iOS底层学习 - 内存管理之Autoreleasepool
通过之前章节的学习,我们知道在ARC下,LLVM编译器会自动帮我们生产retain、release和autorelease等代码,减少了在MRC下的工作量。调用autorelease会将该对象添加进自动释放池中,它会在一个恰当的时刻自动给对象调用release,所以autore…
iOS底层学习 - 内存管理之内存管理方案
移动端的内存管理技术,主要有 GC(Garbage Collection,垃圾回收)的标记清除算法和苹果公司使用的引用计数方法。 相比较于 GC 标记清除算法,引用计数法可以及时地回收引用计数为 0 的对象,减少查找次数。但是,引用计数会带来循环引用的问题,比如当外部的变量强引…
iOS底层学习 - 深入RunLoop
一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出,这种模型通常被称作 Event Loop。 Event Loop 在很多系统和框架里都有实现,比如 Node.js 的事件处理,比如 Windows 程序的消息…
iOS底层学习 - Block全解
Block 是 Objective-C 对于闭包的实现。 简单来说,block就是将一些代码封装起来,以便在将来某个时候被使用,如果你不去调用block,block内部封装的代码就不会执行。 接下来查看__main_block_impl_0函数的定义,我们发现其内部其实就是进行…
iOS底层学习 - 多线程之中的锁🔐
锁 -- 是保证线程安全常见的同步工具。锁是一种非强制的机制,每一个线程在访问数据或者资源前,要先获取(Acquire) 锁,并在访问结束之后释放(Release)锁。如果锁已经被占用,其它试图获取锁的线程会等待,直到锁重新可用。 前面说到了,锁是用来保护线程安全的工具。 可以…
iOS底层学习 - 多线程之GCD底层原理篇
对于GCD的底层来说,主要有队列创建,函数执行,同步异步原理和其他应用函数的原理。关于队列原理的,我们之前的篇章已经讲过,相信对于GCD是如何创建队列的,已经有了认识,今天就来继续看其他的底层原理,还是通过源码来深入研究 我们都知道,当使用dispatch_sync在串行队列上…
iOS底层学习 - 多线程之GCD应用篇
我们知道GCD除了基本的dispatch_sync和dispatch_async用法外,还有一些其他的用法,比如信号量,调度组,延时执行等等。我们来看一下这个使用是怎么应用到我们平常的多线程开发当中的。 下面我们来分析一下,我们发现在主队列中有while任务NSLog任务,所以…
iOS底层学习 - 多线程之GCD队列原理篇
要像知道是底层是如何创建的,最好的方法还是阅读源码,万幸的是,多线程的代码,苹果是开源的,可以点击libdispatch源码下载。 在底层源码中,我们可以看到dispatch_queue_create的底层实现如下,可以看到调用了一个中间代码方法。下面我们深入_dispatch…
iOS底层学习 - 多线程之GCD初探
GCD全程为Grand Central Dispatch,由C语言实现,是苹果为多核的并行运算提出的解决方案,CGD会自动利用更多的CPU内核,自动管理线程的生命周期,程序员只需要告诉GCD需要执行的任务,无需编写任何管理线程的代码。GCD也是iOS使用频率最高的多线程技术。 …
iOS底层学习 - 多线程之基础原理篇
当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存。 在iOS开发中,一个App在内存中就是一个进程,且相互独立,只能访问自己的沙…
下一页
个人成就
文章被点赞
253
文章被阅读
79,525
掘力值
2,017
关注了
29
关注者
1,285
收藏集
1
关注标签
20
加入于
2018-07-18