Browse DevX
Sign up for e-mail newsletters from DevX


Thanks for Not Sharing, Or, How to Define Thread-Local Data

Static data is shared among all threads of the same process. This can lead to race-conditions and bugs, but at last there's a solution: use thread-local storage to allocate per-thread data.

ntil not long ago, multithreaded apps relied on nonstandard, platform-dependent APIs. C++0x is now in the process of adding a standard threading API, including auxiliary facilities such as thread-local storage. The following sections will explain how to create thread-local data and explain the restrictions on the use of such data.

An object with static storage duration is indiscriminately shared among all the threads of a given process, but you need something quite different—you need a per-thread copy of that object. How do you go about getting it?

Use thread-local variables to declare objects that are unique to a thread.

Thanks for your registration, follow us on our social networks to keep up-to-date