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