#include <ThreadLocal.h>
This is useful in many situations when writing multithreaded code. For example, it can be used as temporary workspace for calculations. If a single workspace object were created, all access to it would need to be synchronized to prevent threads from overwriting each other's values. Using a ThreadLocal instead means that a separate workspace object will automatically be created for each thread.
To use it, simply create a ThreadLocal, then call get() or upd() to get a readable or writable reference to the value for the current thread:
ThreadLocal<int> x; ... x.upd() = 5; assert(x.get() == 5);
Public Member Functions | |
ThreadLocal () | |
Create a new ThreadLocal variable. | |
ThreadLocal (const T &defaultValue) | |
Create a new ThreadLocal variable. | |
~ThreadLocal () | |
T & | upd () |
Get a reference to the value for the current thread. | |
const T & | get () const |
Get a const reference to the value for the current thread. |
ThreadLocal | ( | ) | [inline] |
Create a new ThreadLocal variable.
ThreadLocal | ( | const T & | defaultValue | ) | [inline] |
Create a new ThreadLocal variable.
defaultValue | the initial value which the variable will have on each thread |
~ThreadLocal | ( | ) | [inline] |
References C::T.
T& upd | ( | ) | [inline] |
const T& get | ( | ) | const [inline] |