11.10.1 Declaring thread objects

The GCC method to declare thread objects is through the storage class specifier __thread. The use of this specifier may be combined with static or extern (but not auto). When an object is declared with this specifier, the language tool will arrange to locate these objects into an area of memory that is separate from other data with a view to allowing multiple copies of this data to exist.