기존 코드는 스레드 특정 키를 사용합니다. 이 키를 더 많이 만들어야하는 지금이 코드를 확장하려고합니다. 그러나 pthread는 프로세스 당 약 1024 개의 키를 지원합니다.이 한계로 인해 키가 생성되지 않아 문제가 발생합니다. 키의 pthread 구현을 사용하지 않고 최상의 기능을 구현하는 방법에 대한 제안 사항은 무엇입니까?pthread 키의 자체 구현
0
A
답변
1
사용 Thread-Local storage :
#define KEYS_MAXIMUM 2048
__thread void * keys[KEYS_MAXIMUM];
가 소멸자 당신이 사용할 수 있도록하려면 :
typedef struct
{
void * p;
void (*f) (void *);
} Key
__thread Key * keys[KEYS_MAXIMUM];
모든 것을 여기에 누락 pthread_key*
API를 mimicing 일부 래퍼입니다.
+1
그냥 언급하자면 해당 C11 기능인 '_Treadlocal'이 있습니다. –
귀하의 질문은 의미가 너무 넓습니다. 너 뭐 해봤 니? 어떤 문제가 당신을 괴롭 히고 있습니까? –