cpprussia C++ Russia 2020 Мск (29.06.2020 — 02.07.2020)

Thread Local в C++ как он есть

img

Доклад посвящен такой устоявшейся фиче C++, как thread_local. Несмотря на то, что стандартизована она еще в C++11, мало кто понимает, что за машинерия за этим стоит. Как и в каких случаях мы получаем этот функционал бесплатно, а когда в ход идет тяжелая артиллерия.

<p>Доклад посвящен такой уже вроде бы устоявшейся фиче C++ как thread_local. Несмотря на то, что стандартизована она еще в C++11, мало кто понимает, что за машинерия за этим стоит. Как и в каких случаях мы получаем этот функционал бесплатно, а когда в ход идет тяжелая артиллерия.

Доклад рассматривает имплементацию в Linux как платформы с самой полной поддержкой этой фичи языка. И к тому же продолжающая ее развивать для получения максимального перформанса.</p> <p>В докладе будут рассмотрены:</p> <ul> <li>раннее POSIX-решение;</li> <li>имплементация в языке и 4 «традиционные» модели Thread Local;</li> <li>более продвинутая, но еще не везде применяющаяся дескрипторная модель;</li> <li>особенности при работе с thread_local объектами и подводные камни связанные с ними;</li> <li>ассемблерные листинги с комментариями к ним;</li> <li>бенчмарки.</li> </ul> <p>Целевая аудитория: более опытные программисты с минимальными знаниями ассемблера x86. Из доклада аудитория почерпнет знания о том, какое реальное время жизни их thread_local-объектов. В каких случаях можно безболезненно пользоваться этой фичей, а в каких случаях можно потерять перформанс при использовании thread_local. И каким образом можно обойти эти проблемы.</p>