- 博客(50)
- 资源 (8)
- 收藏
- 关注
原创 变态的libDispatch结构分析-object结构
文件位置:libdispatch/src/object_internal.h1. 不同结构体的类型typeenum { _DISPATCH_CONTINUATION_TYPE = 0x00000, // meta-type for continuations _DISPATCH_QUEUE_TYPE = 0x10000, // meta-type for queues
2014-01-13 17:30:30 2248
原创 Android 线程4件套 MessageQueue Message Looper Handler之MessageQueue
看了前面Looper章节之后,也许还是云里雾里的,但至少了解到Looper中每个Looper干了什么事,其中我们MessageLooper留下了两个问题。主要问题是Looper如何从MessageQueue中去取消息的。那么我们先从MessageQueue如何压入消息开始:MessageQueue是Message的一个收纳处,App通过Handler将Message压入到Message
2014-01-08 15:19:11 867
原创 ThreadLocal
1. 定义ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会
2014-01-07 19:34:22 700
原创 Android 线程4件套 MessageQueue Message Looper Handler之Looper
Android驱动线程消息公四件套:消息载体:Message消息队列:MessageQueue消息循环:Looper消息处理:Handler所以核心都是以Looper为基础的,形象的表示为一个无限循环的环;在它运行期间会一直从MessageQueue中取出Message,然后通过Handler处理掉。在COS中存在多个Looper:第一个Looper:文
2014-01-07 17:49:36 2175 1
转载 epoll_create, epoll_ctl和epoll_wait 讲解
NAME epoll - I/O event notification facilitySYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edge or Level Triggered interface an
2014-01-06 17:17:12 2873
原创 bionic Condition
然后我们进入源码分析。bionic将条件变量封装成了一个类,也就成为了Condition这也是Bionic的设计理念之一,就是让事情变得真正简单化。 * Condition variables are paired up with mutexes. Lock the mutex, * call wait(), then either re-wait() if things a
2013-12-30 19:43:57 1162
原创 android bionic mutex分析
1. 先从mutex的构造开始/* * Simple mutex class. The implementation is system-dependent. * * The mutex must be unlocked by the thread that locked it. They are not * recursive, i.e. the same thread can
2013-12-27 18:07:40 2770
转载 Android-- bionic介绍
小组人员移植ntfs-3g碰到lseek越界问题,经过查证其使用了llseek函数导致死机的问题。其实问题很简单:调用处: llseek (int, unsigned long, unsigned long, loff_t*, int);但是在android bionic中将其对应到函数lseek,其函数声明如下:off_t lseek(int, off_t, int);
2013-12-26 18:03:41 1522
原创 GCD的一些分析-2
将Queue中的api归类为:同步sync:disptach_sync_f异步async;disptach_async_f异步延时asyncDelayed: 暂且叫disptach_cannel取消延时disptach_source_cancel。先看看一张队列调用的关系图:这张图表明了GCD中队列的并发关系,除了globalqueue之外,其他的que
2013-12-12 12:36:58 2945
原创 GCD的一些分析-1
最近看了点libdispatch的源码,关于GCD中几个队列的一些代码分析,拿出来共享一下。之前有人分析过了,GCD提供很多超越传统多线程编程的优势:易用: GCD比之thread跟简单易用。由于GCD基于work unit而非像thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务。基于block的血统导致它能极为简单得在
2013-12-12 11:46:28 2868
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人