pthreads rwlocks 数量的实际限制?
Practical limit to number of pthreads rwlocks?
我正在编写一个应用程序,该应用程序要求给定用户的某些活动不会被可能竞争的线程干扰。我的整个用户数据库都在内存中,我正在考虑向用户数据结构添加一个 pthread_rwlock_t
。我预计用户不会超过 10 到 2 万。 56 字节的锁结构根本不是很多 RAM。我的问题是,您在进程中可以拥有的实际 rwlocks 数量是否有实际限制?请注意,我不是在谈论可以获得锁的线程数,或者给定线程可以增加锁计数器的次数。相反,我想知道是否有一些底层内核或其他资源支持我可能最终耗尽的每个锁。
这是一个实施质量问题:POSIX 允许 rwlock 的初始化因资源耗尽而失败。但是,例如,常见的 Linux 实现除了 pthread_rwlock_t
本身的内存之外不需要任何每个锁资源。
我正在编写一个应用程序,该应用程序要求给定用户的某些活动不会被可能竞争的线程干扰。我的整个用户数据库都在内存中,我正在考虑向用户数据结构添加一个 pthread_rwlock_t
。我预计用户不会超过 10 到 2 万。 56 字节的锁结构根本不是很多 RAM。我的问题是,您在进程中可以拥有的实际 rwlocks 数量是否有实际限制?请注意,我不是在谈论可以获得锁的线程数,或者给定线程可以增加锁计数器的次数。相反,我想知道是否有一些底层内核或其他资源支持我可能最终耗尽的每个锁。
这是一个实施质量问题:POSIX 允许 rwlock 的初始化因资源耗尽而失败。但是,例如,常见的 Linux 实现除了 pthread_rwlock_t
本身的内存之外不需要任何每个锁资源。