Android中的同步機(jī)制

Mutex

  • Mutex 即能處理進(jìn)程內(nèi)部同步也能處理進(jìn)程間同步
  • 如果在構(gòu)造的時(shí)候初始化為SHARED 類型的說明他可被用于進(jìn)程間同步
  Class Mutex{
  public: enum{
      PRIVATE = 0, //僅限于本進(jìn)程的同步
      SHARED = 1 //支持跨進(jìn)程的同步
  };
}
  • 提供了3個(gè)方法
status_t lock(); //阻塞
void unlock();
status_t trylock();//非阻塞

Mutex 最終調(diào)用 pthread_mutex_lock(mMutex)等相應(yīng)的方法

Condition

  • 相對于Mutex Condition為了節(jié)省cpu而設(shè)計(jì),因?yàn)樵谀撤N情況下某個(gè)線程對鎖的需求相對于其它線程更少點(diǎn)只有在某中條件的時(shí)候,才需要,免去像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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容