Android中的同步机制

Mutex

  • Mutex 即能处理进程内部同步也能处理进程间同步
  • 如果在构造的时候初始化为SHARED 类型的说明他可被用于进程间同步
  Class Mutex{
  public: enum{
      PRIVATE = 0, //仅限于本进程的同步
      SHARED = 1 //支持跨进程的同步
  };
}
  • 提供了3个方法
status_t lock(); //阻塞
void unlock();
status_t trylock();//非阻塞

Mutex 最终调用 pthread_mutex_lock(mMutex)等相应的方法

Condition

  • 相对于Mutex Condition为了节省cpu而设计,因为在某种情况下某个线程对锁的需求相对于其它线程更少点只有在某中条件的时候,才需要,免去像Mutex的轮询方法。
class Condition{
public:
    enum{
        PRIVATE = 0,
        SHARED = 1
    };
   
....
status_t wait(Mutex &mutex);
status_t waitRelative(Mutex &mutex, nsecs_t reltime );

void signal();
void broadcast();
}
  • wait是阻塞的
  • waitRelative 是非阻塞的

Barrier

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容