0
我现有的代码使用了一些线程特定的键。我打算现在扩展这个代码,这需要创建更多这样的密钥。但是pthread每个进程支持大约1024个密钥,因为在这个限制之后哪些密钥不会被创建,这对我造成了一个问题。有关如何在不使用密钥的pthread实现的情况下实现最佳相同功能的任何建议?自己的pthread键实现
我现有的代码使用了一些线程特定的键。我打算现在扩展这个代码,这需要创建更多这样的密钥。但是pthread每个进程支持大约1024个密钥,因为在这个限制之后哪些密钥不会被创建,这对我造成了一个问题。有关如何在不使用密钥的pthread实现的情况下实现最佳相同功能的任何建议?自己的pthread键实现
#define KEYS_MAXIMUM 2048
__thread void * keys[KEYS_MAXIMUM];
为了让析构函数您可以使用:
typedef struct
{
void * p;
void (*f) (void *);
} Key
__thread Key * keys[KEYS_MAXIMUM];
所有这一切都在这里缺少一些包装mimicing的pthread_key*
API。
只需提及它,就有一个相应的C11功能'_Treadlocal'。 –
就目前而言,您的问题太广泛而无法有效回答。你有什么尝试?有什么特别的问题困扰着你吗? –