Google Directory
Directory
  Directory Help
Search only in ThreadsSearch the Web  

Threads
  Computers > Programming > Threads   Go to Directory Home  

Categories
C++ (7)
Java (40)
POSIX (17)
Win32 (6)
Related Categories:
    Computers > Programming > Languages > Concurrent  (27)
    Computers > Programming > Operating Systems  (28)

Web Pages
Viewing in Google PageRank order               View in alphabetical order
  Bibliography on Threads and Multithreading http://liinwww.ira.uka.de/bibliography/Os/threads.html
Part of the Computer Science Bibliography Collection.
  comp.programming.threads FAQ http://www.serpentine.com/blog/threads-faq/
Frequently asked questions (by Bryan O'Sullivan).
  Protothreads http://www.sics.se/~adam/pt/
Very lightweight stackless threads; give linear code execution for event-driven systems, designed to use little memory; library is pure C, no platform-specific Assembly; usable with or without OS. Open source, BSD-type license.
  The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software http://www.gotw.ca/publications/concurrency-ddj.htm
The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency.
  http://www.risc.uni-linz.ac.at/software/rt++/ http://www.risc.uni-linz.ac.at/software/rt++/
Higher order threads for C++; tutorial and reference manual.
  State Threads Library http://state-threads.sourceforge.net/
Small application library for writing fast, highly scalable Internet programs on Unix-like platforms. Open source, MPL or GPL.
  comp.programming.threads FAQ http://www.lambdacs.com/cpt/FAQ.html
Bil Lewis's collection of frequently asked questions.
  A Thread Performance Comparison http://www.usenix.org/publications/library/proceedings/usenix-nt98/full_papers/zabatta/zabatta_html/zabatta.html
Compares Windows NT and Solaris on a symmetric multiprocessor machine.
  Foundations of Multithreaded, Parallel, and Distributed Programming http://www.pearsonhighered.com/educator/academic/product/0,,0201357526,00%2ben-USS_01DBC.html
This book teaches the fundamental concepts of multithreaded, parallel and distributed computing. Emphasizes how to solve problems, with correctness the primary concern and performance an important, but secondary, concern. (Gregory R. Andrews)
  Survey of Threads http://www.northco.net/chenke/project/project2.html
Comparing Solaris, Linux, and Windows NT threads.
  Fundamentals of Multithreading http://www.slcentral.com/articles/01/6/multithreading/
Technical article, covering Amdahl's Law, latencies and bandwidth, on-chip multiprocessing, Jackson technology, and simultaneous multithreading. (SystemLogic.net)
  It's (Not) All Been Done http://www.gotw.ca/publications/guest-ed-200609.htm
Every decade or so there is a major revolution in the way software is developed. But, unlike the object and web revolutions, the concurrency revolution can be seen coming.
  Lock Options http://www.ddj.com/cpp/212201754
Presents a solution to races and deadlocks based on a well-known deadlock-avoidance protocol and shows how it can be enforced by the compiler. It can be applied to programs in which the number of locks is fixed and known up front.
  Use Thread Pools Correctly: Keep Tasks Short and Nonblocking http://www.ddj.com/hpc-high-performance-computing/216500409
A thread pool hides a lot of details, but to use it effectively some awareness of some things a pool does under the covers is needed to avoid inadvertently hitting performance and correctness pitfalls.
  Sharing Is the Root of All Contention http://www.ddj.com/hpc-high-performance-computing/214100002
Sharing requires waiting and overhead, and is a natural enemy of scalability. This article focuses on one important case, namely mutable (writable) shared objects in memory, which are an inherent bottleneck to scalability on multicore systems.
  Priority Inheritance Protocols http://www-md.e-technik.uni-rostock.de/ma/gol/rtsys-bib/90-toc-pcp.pdf
Use of synchronization mechanisms like semaphores, monitors, and critical regions can lead to uncontrolled priority inversion.
  Introduction to Priority Inversion http://www.embedded.com/story/OEG20020321S0023
Gives an introduction to priority inversion and shows a pair of techniques to avoid them.
  Concurrent Programming: Principles and Practice http://www.pearsonhighered.com/educator/academic/product/0,,0805300864,00%2ben-USS_01DBC.html
This book provides an in-depth overview of underlying principles as well as practical techniques that can be used to design concurrent programs. (Greg Andrews)
  Generic Synchronization Policies in C++ http://www.ciaranmchale.com/gsp/
Most uses of synchronization code in multi-threaded applications fall into a small number of high-level “usage patterns”, or what can be called generic synchronization policies (GSPs). This paper illustrates how the use of such GSPs simplify the writing of thread-safe classes. In addition, this paper presents a C++ class library that implements commonly-used GSPs.
  Portable Thread Synchronization using C++ http://www.frostbytes.com/~jimf/papers/c++sync/c++sync.html
Provides example C++ classes implementing a series of synchronization objects useful for building portable (Solaris and Win32) multithreaded applications.
  Maximize Locality, Minimize Contention http://www.ddj.com/hpc-high-performance-computing/208200273
Explains why in the concurrent world, locality is a first-order issue that trumps most other performance considerations. Now locality is no longer just about fitting well into cache and RAM, but to avoid scalability busters by keeping tightly coupled data physically close together and separately used data far, far apart.
  Apply Critical Sections Consistently http://www.ddj.com/cpp/202401098
Critical sections are the One True Tool for guaranteeing mutual exclusion on shared variables. Like most tools, these must be applied consistently, and with the intended meanings.
  The Pillars of Concurrency http://www.ddj.com/cpp/200001985
This article makes the case that a consistent mental model is needed to talk about concurrency.
  Use Threads Correctly = Isolation + Asynchronous Messages http://www.ddj.com/hpc-high-performance-computing/215900465
Motivates and illustrate best practices for using threads - techniques that will make concurrent code easier to write correctly and to reason about with confidence.
  volatile - Multithreaded Programmer's Best Friend http://www.ddj.com/cpp/184403766
Discusses the usage of the volatile keyword in multithreaded C++ programs.
  Writing Lock-Free Code: A Corrected Queue http://www.ddj.com/cpp/210604448
Explores lock-free code by focusing on creating a lock-free queue.
  Sutter Speaks: The Future of Concurrency http://www.devx.com/go-parallel/Article/37839
What does the future hold for concurrency? What will happen to the tools and techniques around concurrent programming? In part two of our series, concurrency guru Herb Sutter talks about these issues and what developers need to be reading to understand concurrency.
  Sutter Speaks: A Conversation with the Concurrency Whisperer http://www.devx.com/go-parallel/Article/37573
Multi- and many-core chips are entering the mainstream — and one of the first software development authorities to take note was C++ expert Herb Sutter. Thanks to his practical insights, a new generation may grok concurrency sooner than previously thought possible.
  Use Lock Hierarchies to Avoid Deadlock http://www.ddj.com/cpp/204801163
Explains how to use lock hierarchies to avoid deadlock by assigning each shared resource a level that corresponds to its architectural layer.
  Deadlock: The Problem and a Solution http://www.codeguru.com/cpp/misc/misc/threadsprocesses/article.php/c15545/
This article explains what deadlocks are and describes ways of circumventing deadlocks.
  Multi-threaded Debugging Techniques http://www.ddj.com/cpp/199200938
Describes a number of general purpose debugging techniques for multi-threaded applications.
  Lock-Free Code: A False Sense of Security http://www.ddj.com/cpp/210600279
Writing lock-free code can confound anyone-even expert programmers, as Herb shows in this article.
  Lock-free Interprocess Communication http://www.ddj.com/cpp/189401457
Interprocess communication is an essential component of modern software engineering. Often, lock-free IPC is accomplished via special processor commands. This article propose a communication type that requires only atomic writing of processor word from processor cache into main memory and atomic processor word reading from main memory into the processor register or processor cache.
  Application-Level Abstractions for Lock-Free Data Sharing http://www.ddj.com/cpp/205200452
Describes lock-free data sharing, otherwise known as "wait-free data sharing" as an alternative to the use of locks.
  It's Not Always Nice To Share http://www.ddj.com/cpp/217600495
It isn't just languages that have poor support for thread local storage, but operating systems too
  Measuring Parallel Performance: Optimizing a Concurrent Queue http://www.ddj.com/cpp/212201163
Shows different ways of how to write a fast, internally synchronized queue, one that callers can use without any explicit external locking or other synchronization, and compares the performance.
  Understanding Parallel Performance http://www.ddj.com/cpp/211800538
Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs.
  Fundamental Concepts of Parallel Programming http://www.ddj.com/hpc-high-performance-computing/212002418
Explains fundamental concepts for moving from a linear to a parallel programming model
  What's New in Boost Threads? http://www.ddj.com/cpp/211600441
The Boost.Thread library, which enables the use of multiple threads of execution with shared data in portable C++ code, has undergone some major changes.
  The Many Faces of Deadlock http://www.ddj.com/cpp/209900973
Explains that deadlock can happen whenever there is a blocking (or waiting) cycle among concurrent tasks.
  Concurrency with Erlang http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/2007/10&file=w5tow.xml&xsl=article.xsl&
To avoid problems with shared state working with multiple threads, Vinoski recommends a programming language like Erlang rather than C++ or Java.
  The Problem with Threads http://www.computer.org/portal/site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/index.jsp?&pName=computer_level1_article&TheCat=1005&path=computer/homepage/0506&file=cover.xml&xsl=article.xsl&
Argues that for concurrent programming to become mainstream, threads must be discarded as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs.

Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

The content of the Google directory is based on the Open Directory and is enhanced using Google's own technology.
The following Open Directory editors contributed to this category:
cmeerw   

Modified by Google - ©2009 Google
Advertise with Us - Jobs, Press, Cool Stuff...