note
文章平均质量分 85
sindrilin
iOS程序猿一枚
展开
-
iOS-生产者消费者
原文地址前言在计算机世界当中,数据在不断产生的同时,也在不停地被处理着。产生数据的一方被我们称作生产者,而另一方则被称为消费者。在网络请求中,服务器是提供数据的生产者,而用户是数据的消费者。伴随着互联网的高速发展,即便是百万乃至千万用户级的访问量也并非罕见,而服务器在面临如此高的并发请求时仍能做到游刃有余。这背后的技术并不是三言两语能够说清的,但其中关系着一个重要的模式——生产者-消费者模式 生原创 2017-11-05 12:20:31 · 734 阅读 · 0 评论 -
iOS-倒计时设计
原文地址 计算机是不存在倒计时这个概念的,所有的倒计时设计来源于对定时器的运用:给予一个deadline,以秒为时间间隔,在每次回调时刷新屏幕上的数字。倒计时的实现几乎没有门槛,无论NSTimer也好,GCD也罢,甚至使用CADisplayLink都能用来制作一个倒计时方案。但同样的,低门槛也意味着方案的上下限差也很大,本文打算谈谈如何设计一个倒计时方案 为什么要写这篇文章 事实上,倒计原创 2018-01-06 13:57:33 · 952 阅读 · 0 评论 -
iOS-一对一设计
原文地址 一对一one to one并不是某种业务上的具体需求,它仅仅是一种数据存储上的设计。one to one要求一个变量能且最多只能匹配一个变量,这听着很绕口,举个常见的结构例子就是key-value匹配。不同的编程语言提供了高层级的key-value存储结构,例如dictionary字典,被这些高层级的存储结构宠坏了的我们不知是否思考过这么一个问题: dictionary是怎么通原创 2018-01-21 21:33:29 · 235 阅读 · 0 评论 -
奇怪的GCD
原文地址 多线程一直是我相当感兴趣的技术知识之一,个人尤其喜爱GCD这个轻量级的多线程解决方案,为了了解其实现,不厌其烦的翻阅libdispatch的源码。甚至因为太喜欢了,本来想要写这相应的源码解析系列文章,但害怕写的不好,于是除了开篇的类型介绍,也是草草了事,没了下文 恰好这几天好友出了几道有关GCD的题目,运行结果出于意料,仔细摸索后,发现苹果基于libdispatch做了一些有趣的...原创 2018-03-03 15:17:48 · 190 阅读 · 0 评论 -
被遗弃的线程
原文地址 main函数作为程序运行的入口,正常情况下,函数会执行毫秒级别的操作,然后返回一个0表示程序正常终止。为了避免应用启动即终止,苹果设计了runloop机制来维持线程的生命,runloop在每一次的循环当中不断的去处理事件,或控制线程的休眠和唤醒。runloop还结合了libdispatch的任务派发机制,可以循环地处理async到队列中的任务 启动runloop 从runl...原创 2018-04-14 11:29:01 · 213 阅读 · 0 评论