线程同步互斥锁

共用三个函数:

mutex_lock()    mutex_unlock()    mutex_trylock()

pthread_mutex_lock给安卓上层使用,mutex_lock给kernel使用,本质是一样的,都是IPC通信中的互斥锁,只不过安卓上层封装出pthread_mutex_lock。

 pthread_mutex_lock会阻塞,pthread_mutex_trylock是非阻塞的。

举例:lock

当A线程去lock一个锁时,如果该锁已被其他线程锁住,则A线程会被挂起,等待该锁被释放后,再进行lock。

线程同步互斥锁_第1张图片

举例:trylock
当线程Atrylock一个锁时,如果该锁被占用,则返回false,则线程A继续执行下面的程序,不会被挂起。

线程同步互斥锁_第2张图片

总结: trylock就是尝试锁一下,锁不到就拉倒,不会影响自己进行下一步操作。lock就比较犟,锁不到的话,我就等着,等到我能锁了,再进行一下步操作。

你可能感兴趣的:(linux)