Renchao's Blog

世上每个人都是驯兽师,而那匹猛兽,就是每人各自的性情。

跑圈的Runloop

跑圈-休息-跑圈!

跑圈的Runloop [TOC] 什么是Runloop? 内部代码整理如下: 直译过来就是循环着跑,直到关机为止。Runloop其实就是能让线程能够随时处理事件而不退出,在闲时休眠,收到任务时运行。 这种思想在很多系统和框架里都有实现,Node.js的事件处理,Windows程序的消息循环,OS X和iOS里的runloop等。这种模型的关键点在于如何管理事件消息,如何在线程没...

TCP和UDP、GET和POST、Session和Cookie

计算机网络三大必问不同点

[TOC] TCP VS UDP TCP UDP 传输层控制协议 用户数据报协议 面向字节流 面向报文 面向连接(三次握手四次挥手) 面向非连接 可靠(窗口,拥塞控制,流量...

整理一些经典问题

包括数据结构和算法、网络、iOS等

整理一些经典问题 [TOC] 数据结构与算法 栈和队列的应用 函数调用 递归调用 断点实现 符号匹配 计算代数式 CPU的资源分配等 海量数据查找top 对于100w个数据求几个数,其实总量也就是4*1000000 = 4M,直接堆排序就可以。如下面的例题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千...

iOS触摸事件和事件响应链

RT

iOS触摸事件和事件响应链 事件的产生 当系统检测到触摸屏幕的事件之后,会将该事件打包成为一个UIEvent对象并放在当前活动的UIApplication管理的事件队列中,然后当前应用会在某个时刻取出该事件并传递给UIWindow。UIWindow对象会使用hitTest:withEvent:方法寻找本次触摸事件的所在视图,即第一响应对象。 在hitTest:withEvent:方法中...

真的搞懂了runtime?

iOS的运行核心-runtime

真的搞懂了runtime? [TOC] runtime简介 runtime简称运行时。是一套底层的 C 语言 API,是 iOS 系统的核心之一,也是OC之所以使动态化语言的原因。开发者在编码过程中,可以给任意一个对象发送消息,在编译阶段只是确定了要向接收者发送这条消息,而接受者将要如何响应和处理这条消息,那就要看运行时来决定了。 对于C语言,调用一个方法其实就是跳到内存中的某一点并...

GCD整理

RT

GCD [TOC] 什么是GCD? GCD全称为Grand Central Dispatch,是libdispatch的市场名称,而libdispatch是Apple的一个库,其为并发代码在iOS和OS X的多核硬件上执行提供支持。确切地说GCD是一套低层级的C API,通过 GCD,开发者只需要向队列中添加一段代码块(block或C函数指针),而不需要直接和线程打交道。GCD在后...

输入网址到显示网页到底经历了什么?

只知道三次握手?

输入网址到显示到底经历了什么 用户从输入网址到收到网页,客户端需要发送三次数据: DNS域名解析 建立TCP/IP连接 发送请求网页信息 DNS域名解析 先在浏览器缓存里找(chrome浏览器用chrome://net-internals/#dns来进行查看) 没有则查找系统缓存(windows系统通过命令行ipconfig /displaydns可以看到,也可以尝...

应用层和传输层协议的历代优化

RT

应用层和传输层协议的历代优化 [TOC] 背景 影响一个HTTP网络请求的因素主要有两个:带宽和延迟 1.带宽 如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础建设已经使得带宽得到极大的提升,我们不再会担心由带宽而影响网速,那么就只剩下延迟了。 2.延迟 浏览器阻塞(HOL blocking):浏览器会因为一些原因阻塞请求。浏览器对于...

线程和进程到底什么区别?

RT,面试必问的题

线程和进程到底什么区别? 维基百科 进程(process),是计算机中已运行程序的实体。进程为曾经是分时系统的基本运作单位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。 程序本身只是指令、数据及其组织...

内存区域划分

认清内存区域到底怎么划分

内存区域划分 [TOC] 内存区域 内存区域可以划分为堆、栈、全局\静态区、常量区、代码区。下表说明了内存区域的划分情况: 五大区域 分配和释放 存放对象 特点 栈 编译器自动分配释放 局部变量 实参 先进后出 512k 连续 从大到小 速...