Nad*_*Rub 1 android pthreads linux-kernel android-ndk
Windows CRITICAL_SECTION通过使用自旋锁和信号灯来减少用户/内核切换,从而实现了比互斥锁更轻的方式(就锁定/解锁性能而言)。
即使互斥锁当前未被拥有/锁定,互斥锁也需要上下文切换,其中CRITICAL_SECTION会要求经过一段时间自旋锁定之后才会产生性能要求(导致更好的perf)。
我是Android Native开发人员的新手,请牢记Windows CRITICAL_SECTION,在Native Android中是否有等效功能?
有没有什么比pthread_mutex_轻。@ Android?'pthread_mutex_ 。'即使互斥体尚未“拥有/锁定”(例如,在Windows中),还是要进行上下文切换?
牢记快速进入/退出关键部分'pthread_mutex_的使用成本是多少。施加?
是否有用户模式自旋锁@本机Android?
任何帮助将不胜感激。
索菲的纳达夫
不,pthread_mutex_lock()Android的Bionic libc中没有为将普通互斥锁锁定在非竞争状态下强加上下文切换-使用简单的原子比较和交换,后跟内存屏障。同样,如果没有等待的进程,则解锁互斥锁不需要内核条目。
你可以找到仿生实施pthread_mutex_lock()并pthread_mutex_unlock()在libc/bionic/pthread.c在仿生libc中的来源,看看这个自己。
通常,您可以考虑pthread_mutex_lock()/ pthread_mutex_unlock()非常轻巧。
| 归档时间: |
|
| 查看次数: |
3169 次 |
| 最近记录: |