iOS GCD定时器如何改写为长尾?

2026-04-11 08:410阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计817个文字,预计阅读时间需要4分钟。

iOS GCD定时器如何改写为长尾?

前言:CADisplayLink、NSTimer 不准时CADisplayLink、NSTimer 是基于 RunLoop 机制的,如果 RunLoop 的任务过于繁重,可能会导致这两个定时器不准确。

举例:添加了我们创建的一个 NSTimer 定时器

前言:CADisplayLink、NSTimer 不准时

​ CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。

举个例子:

​ 加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
​ 是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。

一、GCD 定时器

​ GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。

阅读全文

本文共计817个文字,预计阅读时间需要4分钟。

iOS GCD定时器如何改写为长尾?

前言:CADisplayLink、NSTimer 不准时CADisplayLink、NSTimer 是基于 RunLoop 机制的,如果 RunLoop 的任务过于繁重,可能会导致这两个定时器不准确。

举例:添加了我们创建的一个 NSTimer 定时器

前言:CADisplayLink、NSTimer 不准时

​ CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。

举个例子:

​ 加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
​ 是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。

一、GCD 定时器

​ GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。

阅读全文