Marco Liu

一生想做浪漫极客

个人博客搭建 —— —— Jekyll+GithubPage+域名关联

Welcome to Marco Blog

“Yeah It’s on. ” 前言 Marco Liu 的 Blog 就这么开通了。 跳过废话,直接看技术实现 2017年,Marco 总算有个地方可以好好写点东西了。 作为一个程序员, Blog 这种轮子要是挂在大众博客程序上就太没意思了。一是觉得大部分 Blog 服务都太丑,二是觉得不能随便定制不好玩。之前因为太懒没有折腾,结果就一直连个写 Blog 的地儿都没有...

一口一口吃掉GCD (下)

从源码层面分析GCD的底层实现原理

“Yeah I’m here’. ” 正文 dispatch_semaphore dispatch_semaphore_s是性能稍次于自旋锁的的信号量对象,用来保证资源使用的安全性。 它主要有三个API,分别是dispatch_semaphore_create、dispatch_semaphore_wait、dispatch_semaphore_signal。 信号量在初始...

一口一口吃掉GCD (中)

从源码层面分析GCD的底层实现原理

“Yeah I’m here’. ” 正文 dispatch_once typedef long dispatch_once_t; void dispatch_once(dispatch_once_t *val, void (^block)(void)){ struct Block_basic *bb = (void *)block; dispatch_o...

一口一口吃掉GCD (上)

从源码层面分析GCD的底层实现原理

“Yeah I’m here’. ” 前言 在iOS的日常编码中,GCD很好地隔离了我们与线程(pthread)之间的直接交流,跟我们打交道的只有队列和Block,时间久了甚至感觉不到线程的存在,但是仍然阻止不了我对GCD底层原理了解的一腔热血。本文是对ios开发中GCD底层实现的总结,其实关于GCD底层的实现,网上相关文章多到数不过来,而且也非常不错,我也没有自信能比他们做的更...

巩固基础系列笔记

非常水的学习笔记,不适合人类阅读

“Better late than never. ” 前言 前言没啥说的,只想说这是一个非常水的个人学习笔记本,用于巩固iOS开发中的基础知识,仅供参考,欢迎批评指正。 正文 ###### 变量a 本质上代表一个存储单元。CPU通过该存储单元的地址访问该存储单元中的数据。所以a本来代表两个值:存储单元的地址和储单元中的数据。于是就有了二异性。为了消除这种二义性,C语言规定a...