Данные, относящиеся к потоку - почему я не могу просто использовать статическую карту с идентификаторами потоков?

Читая о многопоточности POSIX, я наткнулся на пример данных, зависящих от потока. У меня в голове возникла одна путаница ...

Интерфейс данных, зависящих от потока, выглядит немного неуклюжим, особенно если вы смешиваете необходимость использования pthread_once, различных инициализаторов и т.д.

Есть ли причина, по которой я не могу просто использовать статический std :: map, где ключом является идентификатор pthread_self () и значение данных содержится во второй части std :: pair?

Я не могу придумать причину, по которой это не сработает, если оно было заключено в мьютекс, но я не вижу никаких предложений об этом или чего-то подобного что меня смущает, потому что это звучит намного проще, чем предоставленный API. Я знаю, что многопоточность может иметь множество уловок, поэтому я подумал, что спрошу и посмотрю, собираюсь ли я вмешаться ... что-то неприятное? :)

5
задан John Humphreys - w00te 24 January 2012 в 14:12
поделиться