一、介绍 在iOS中,计时器是比较常用的,用于统计累加数据或者倒计时等,例如手机号获取验证码。计时器大概有那么三种,分别是:NSTimer、CADisplayLink、dispatch_source_t 二、使用 1、NSTimer: 解释: TimerInterval: 执行之前等待的时间。比如设 ...
分类:
移动开发 时间:
2017-03-20 19:22:51
阅读次数:
4267
今天在真机调试的过程中,发现了一个严重的问题,发现CPU的使用率竟然达到了100%,以至于会导致运行内存占用过高,被系统的看门狗机制给杀掉。 下面就讲一讲怎么去定位这个问题: 1.打开Xcode,把项目跑动起来,然后选择这个选项卡 2.现在就可以看到这个画面 3. 现在我们可以看到这个页面,发现我的 ...
分类:
移动开发 时间:
2017-03-19 23:45:17
阅读次数:
660
一:NSTimer和NSRunLoop的关系? 只要出现NSTimer必须要有NSRunLoop,NSTimer必须依赖NSRunLoop才能执行 。NSTimer其实也是一种资源,如果看过多线程编程指引文档的话,我们会发现所有的source如果要起作用,就得加到runloop中去。同理timer这 ...
分类:
其他好文 时间:
2017-03-17 12:08:03
阅读次数:
181
命名管道(FIFO)是进程间通信的一种方式,DEMO如下: 两个地方需要注意: 1. mkfifo会在/tmp目录下创建文件my_fifo 2. 读进程open之前,写进程被阻塞 (it has to be open at both ends simultaneously before you ca ...
分类:
系统相关 时间:
2017-03-14 12:15:33
阅读次数:
315
生成树端口的状态STP在交换机中自动运行,交换机开机是,交换机的指示灯显示为黄色,并且大约有30s的时间不能转发数据,这时交换机做STP计算。直到交换机的STP计算完毕,有些端口可以转发数据,有些端口被阻塞,也就是网络收敛后,交换机才开始转发数据,当网络拓扑发生变化是..
分类:
其他好文 时间:
2017-03-09 01:09:15
阅读次数:
194
能不能把数据暴力的刷到硬盘上,当然是可以的,mongodb给我们提供了fsync+lock机制就能满足我们提的需求。 fsync+lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实例的写入操作全部被阻塞,直到fsync +lock释放锁为止。 这里就不测试了。 加锁: db.ru ...
分类:
数据库 时间:
2017-03-08 19:01:17
阅读次数:
378
前言: NSTimer会保留其目标对象,如果不加以注意,就会持有保留环,造成内存泄露。 一、 NSTimer保留环介绍 Foundation框架中的NSTimer类,提供了在某个时间执行指定方法的功能,原型如下: target和selector参数表示计时器将在哪个对象上调用哪个方法。repeats ...
分类:
其他好文 时间:
2017-03-03 20:46:20
阅读次数:
235
无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Synchronization)。 实现非阻塞同步的方案称为“无锁编程算法”( Non-blocking algorithm)。 多线程编程条件下,多个线 ...
分类:
其他好文 时间:
2017-02-19 23:36:26
阅读次数:
170
1.Runloop --运行循环 Runloop能做的事情: 1.让程序一直运行 2.处理触摸事件:(UI交互,闹钟,网络等等) 3.处理渲染事件:(每一次渲染的时候,重新加载所有的屏幕上的点) NSTimer *timer = [NSTimer timerWithTimeInterval:1.0f ...
分类:
其他好文 时间:
2017-02-12 21:21:46
阅读次数:
181
什么是死锁? 当一个线程永远地持有一个锁,并且其他线程都尝试去获得这个锁时,那么它们将永远被阻塞,当线程A持有锁1想获取锁2,当线程B持有锁2想获取锁1 这种情况下就会产生2个线程一直在阻塞等待其他线程释放锁1 锁2 就会造成死锁。 下面我们来看一下死锁的示例: 输出: 后面什么都不输出了, 为什么 ...
分类:
编程语言 时间:
2017-02-10 17:49:02
阅读次数:
122