time

聊聊定时器

NSTimer,iOS开发应该都很熟悉,在runloop中注册一些指定的时间点的回调,可能会因为线程执行任务忙而卡过去某些时间点不执行,和runloop是绑定在一起的。

dispacth_after是在指定的时间点后将任务追加到某个任务队列中,这个和一般说延时几秒钟执行,意思上还是有点差距的。

安卓中的Timer却不是和looper绑定的,因为Timer本来java里就有,原理用到了大顶堆,然后轮询系统当前的时间

js中的timer是有专门的定时器线程的

现代的浏览器基本上都是多进程了,开一个Tab页就多一个进程,浏览器渲染进程中包括GUI渲染线程、js引擎线程、事件触发线程、定时器触发线程、异步http请求线程。(这里的事件触发,iOS也是与主循环绑定在一起了)


有人说他山之石可以攻玉,又有人说贪多不烂

乔布斯当年说安卓是抄袭苹果,是挺多地方与苹果相似的,可以通过开源的安卓了解一些以前难以理解的东西,(iOS中很少提IPC,安卓中却很常见)当然其实现在安卓是半闭源的了,

###

###

待补充…


引用源

Written on December 23, 2020