REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
iOS开发者文档译读-NSTimer
Timer与run loop结合使用。Run loop对它所拥有的timer进行强引用,所以在将其加入run loop后,你不必再自行强引用它。
为了高效使用timer,你应该意识到run loop是怎么运作的。详情请看Threading Programming Guide。
一个timer不是一个实时机制。如果一个有较短触发时间的timer处在一个很长时间的run loop中,或者run loop处在不监听timer的模式中,timer在本次run loop中便不会触发,直到下次run loop检查timer。所以,timer触发的实际时间可能比预期的晚。
NSTimer可以与CFRunLoopTimerRef无缝桥接。
iOS开发者文档译读-RunLoop
一个RunLoop对象可以处理鼠标、键盘输入,端口对象输入,NSConnection对象输入。它也可以处理NSTimer事件。
你的应用不用创建或很清晰地管理RunLoop对象。每个线程(包括应用主线程),都有一个自动创建好的RunLoop对象。如果你需要使用当前线程的RunLoop,你需要使用类方法 currentRunLoop。
应当注意到,从RunLoop角度来看的话,NSTimer对象并不是一个“输入”,它们是一个特殊的类型。这意味着当NSTimer启动时,不会引起RunLoop。
警告:
RunLoop类一般不认为是线程安全的,它的方法应当只被当前线程的上下文调用。你应该永远不要尝试调用其他线程中的RunLoop的方法,因为这样可能导致无法预料的结果。
iOS开发者文档译读-Dispatch
GCD (大中枢调度)由语言特征、runtime库、系统优化组成,来支持多核设备并发编程。
BSD子系统、Core Foundation、Cocoa的接口都被扩展来使用这些优化,以此帮助应用运行地更快,更有效,并且提高反应速度。
考虑到多核编程在不同环境中复杂性,GCD能够在系统层提供支持,为运行中的应用匹配合适的资源。