среда, 22 января 2014 г.

Локальные данные в потоках

Появилась необходимость хранить в каждом потоке свои static локальные данные.
Решение:

В c++11 появился thread_local, который объявляет переменную локальной для потока. Соответственно, сколько потоков - столько переменных будет создано.
В gcc для этой же цели есть __thread. Используется оно, как и другие спецификаторы класса:
__thread int i;
Можно использовать совместно с static или extern, но тогда оно обязательно должно стоять сразу после них.
Ссылка на официальный сайт.

Комментариев нет:

Отправить комментарий