Title: Thread-Specific Storage: An Object Behavioral Pattern for Efficiently Accessing per-Thread State Authors: Douglas C. Schmidt (schmidt@cs.wustl.edu), Nat Pryce (np2@doc.ic.ac.uk), and Tim Harrison (harrison@cs.wustl.edu). Contact Info: Douglas C. Schmidt Department of Computer Science Washington University One Brookings Drive, Box 1045 St. Louis, Missouri 63130-4899 (314) 935-4502 Abstract: In theory, multi-threading an application can improve performance (by executing multiple instruction streams simultaneously) and simplify program structure (by allowing each thread to execute synchronously rather than reactively or asynchronously). In practice, multi-threaded applications often perform no better, or even worse, than single-threaded applications due to the overhead of acquiring and releasing locks. In addition, multi-threaded applications are hard to program due to the complex concurrency control protocols required to avoid race conditions and deadlocks. This paper describes the Thread-Specific Storage pattern, which alleviates several problems with multi-threading performance and programming complexity. The Thread-Specific Storage pattern improves performance and simplifies multi-threaded applications by allowing multiple threads to use one logically global access point to retrieve thread-specific data without incurring locking overhead for each access. Subject Area: Concurrency. Keywords: thread, thread local storage, thread-specific storage