Как вы сказали, у вас есть идентификатор потока.Это просто число.Ничего более.
Стирающий элемент (число) не может причинить вред вашей программе.
Редактировать: Однако вы должны проверить, что стирание элемента в std::map
выполняется синхронизировано.Не забывайте, что контейнеры STL могут быть не поточнобезопасными.См. этот вопрос для получения дополнительной информации.
Edit2: Чтобы убедиться, что у вас нет проблем с синхронизацией, сделайте следующее:
pthread_mutex_t mut; //global variable
pthread_mutex_init(&mut,0); //initialize mutex before calling pthread_create()
//and use mutex to prevent synchronization problems in the end of .
pthread_mutex_lock(&mut);
my_map.erase(key);
pthread_mutex_unlock(&mut);