Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • android Looper 核心原理

    post by onelong / 2013-8-30 20:01 Friday [android]

    回珠海面试的前一个晚上,认真的看看了android Looper 在linux上面的实现,突然知道原来是使用pipe来实现的。有时候在想为什么不使用binder呢?

    pipe+epoll的实现方式,pipe是半双工的通信管道,也就是意味着在微观时刻是单向通信的。从技术上看,pipe的确比较适合用来设计消息循环。

    pipe是用于进程间通信的,那么效率如何呢?为什么不选择不通过linux内核的实现方式呢?如果不通过内核来设计消息队列,就意味着要使用自旋锁?自旋的时候,cpu 100%,这个好像效率也不好吧。通过时钟去轮询,效率也不会很理想。

    或者对linux上的应用设计,中断+异步是最好的吧。

    标签: android android
    引用地址:
     

    我要评论