Thread-local Storage
Learn about the thread-local storage concurrency pattern.
We'll cover the following
Thread-local storage refers to the data that are specific to the thread. The data will seem like global static storage, but in essence, each copy will be created for each thread at the time of thread creation.
Essentially, thread-local storage enables a global state within a thread.
Typical use cases
Here are the three common use cases where we could use thread-local storage:
- Porting a single thread to a multithreaded program.
- Compute thread-local and share the results.
- Thread-local logger.
Example
Our plan is to fill a std::vector
with one hundred million arbitrary numbers between 1
and 10
. We will apply the uniform distribution to get the numbers. And at the end, we will have to calculate the sum of all values.
Before showing the example of thread-local storage, let’s take a look at the code before we use thread-local storage.
Get hands-on with 1400+ tech skills courses.