Я не понял причину использования pthread_key_create, вы можете сказать, почему?

Мы можем передать аргумент потоку, используя pthread_create /(не key_), если он закончен, используя значение для потока. Что касается использования статического хранилища, мы используем мьютексы, так что же значит, что мы используем pthread_key_create? С примером и подчеркнуть, почему он родился (применение и необходимость)? Я слышал, что это полезно для миграции однопоточных приложений, но они все еще используют мьютексы. Итак, какой смысл?

Спасибо!

1 ответ

pthread_key_create используется для создания уникального идентификатора для части локального хранилища потока.

Затем каждый поток может хранить разные значения для каждого ключа. Это может быть полезно при переносе кода, который изначально использует глобальные переменные, но в котором вы хотите, чтобы каждый поток выполнения имел свою собственную независимую версию глобального значения. Вы можете использовать локальное хранилище потока вместо глобального.

Вам не нужно использовать взаимные исключения при доступе к локальным данным потока, принадлежащим потоку, в котором вы находитесь.

Другие вопросы по тегам