gpt4 book ai didi

android - 线程同步@Native Android

转载 作者:行者123 更新时间:2023-11-29 14:33:35 24 4
gpt4 key购买 nike

Windows CRITICAL_SECTION 的实现方式比互斥更轻(就锁定/解锁性能成本而言)通过使用自旋锁和信号量来减少用户/内核切换。

互斥锁需要上下文切换,即使互斥锁当前未被拥有/锁定,其中 CRITICAL_SECTION 将仅在自旋锁上执行一段时间后才会请求上下文切换(导致更好的性能)。

我是 Android Native 开发的新手,考虑到 Windows CRITICAL_SECTION,Native Android 中是否有等效项?

有什么比 pthread_mutex_. 更轻的 @Android? 'pthread_mutex_.' 是否会强制执行上下文切换,即使互斥量尚未~拥​​有/锁定~(如在 Windows 中)?

考虑到快速进入/退出临界区 'pthread_mutex_.' impose 的使用成本是多少?

Native Android 有用户模式自旋锁吗?

我们将不胜感激。

索芬的纳达夫

最佳答案

不,Android 的 Bionic libc 中的 pthread_mutex_lock() 强加上下文切换以将普通互斥锁锁定在无竞争状态 - 一个简单的原子比较 -使用交换,然后是内存屏障。同样,如果没有进程在等待,则解锁互斥体不需要内核条目。

您可以在 Bionic libc 的 libc/bionic/pthread.c 中找到 pthread_mutex_lock()pthread_mutex_unlock() 的 Bionic 实现来源并自己查看。

一般来说,您可以认为 pthread_mutex_lock()/pthread_mutex_unlock() 非常轻量级。

关于android - 线程同步@Native Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com