Cigarettes Shop Guide : Computers : Programming :
Threads
38 pages found in Threads: Await && Locks
An expressive C++ thread synchronization library.
http://await.sourceforge.net/ Bibliography on Threads and Multithreading
Part of the Computer Science Bibliography Collection.
http://liinwww.ira.uka.de/bibliography/Os/threads.html comp.programming.threads FAQ
Bil Lewis's collection of frequently asked questions.
http://www.lambdacs.com/cpt/FAQ.html comp.programming.threads FAQ
Frequently asked questions (by Bryan O'Sullivan).
http://www.serpentine.com/blog/threads-faq/ Concurrent Programming: Principles and Practice
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)
http://www.pearsonhighered.com/educator/academic/product/0,,0805300864,00%2ben-USS_01DBC.html Foundations of Multithreaded, Parallel, and Distributed Programming
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)
http://www.pearsonhighered.com/educator/academic/product/0,,0201357526,00%2ben-USS_01DBC.html Generic Synchronization Policies in C++
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.
http://www.ciaranmchale.com/gsp/ Portable Thread Synchronization using C++
Provides example C++ classes implementing a series of synchronization objects useful for building portable (Solaris and Win32) multithreaded applications.
http://www.frostbytes.com/~jimf/papers/c++sync/c++sync.html Priority Inheritance Protocols
Use of synchronization mechanisms like semaphores, monitors, and critical regions can lead to uncontrolled priority inversion. [PDF]
http://www-md.e-technik.uni-rostock.de/ma/gol/rtsys-bib/90-toc-pcp.pdf Protothreads
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.
http://www.sics.se/~adam/pt/ RT++
Higher order threads for C++; tutorial and reference manual.
http://www.risc.uni-linz.ac.at/software/rt++/ State Threads Library
Small application library for writing fast, highly scalable Internet programs on Unix-like platforms. Open source, MPL or GPL.
http://state-threads.sourceforge.net/ Survey of Threads
Comparing Solaris, Linux, and Windows NT threads.
http://www.northco.net/chenke/project/project2.html A Thread Performance Comparison
Compares Windows NT and Solaris on a symmetric multiprocessor machine.
http://www.usenix.org/publications/library/proceedings/usenix-nt98/full_papers/zabatta/zabatta_html/zabatta.html ZThreads
An advanced object-oriented, cross-platform C++ threading and synchronization library. [GPL]
http://zthread.sourceforge.net/ Fundamental Concepts of Parallel Programming
Explains fundamental concepts for moving from a linear to a parallel programming model <small>(November 13, 2008)</small>
http://www.ddj.com/hpc-high-performance-computing/212002418 Understanding Parallel Performance
Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs. <small>(October 31, 2008)</small>
http://www.ddj.com/cpp/211800538 What's New in Boost Threads?
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. <small>(October 24, 2008)</small>
http://www.ddj.com/cpp/211600441 Writing Lock-Free Code: A Corrected Queue
Explores lock-free code by focusing on creating a lock-free queue. <small>(September 29, 2008)</small>
http://www.ddj.com/cpp/210604448 Deadlock: The Problem and a Solution
This article explains what deadlocks are and describes ways of circumventing deadlocks. <small>(September 18, 2008)</small>
http://www.codeguru.com/cpp/misc/misc/threadsprocesses/article.php/c15545/ The Many Faces of Deadlock
Explains that deadlock can happen whenever there is a blocking (or waiting) cycle among concurrent tasks. <small>(July 31, 2008)</small>
http://www.ddj.com/cpp/209900973 Maximize Locality, Minimize Contention
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. <small>(May 23, 2008)</small>
http://www.ddj.com/hpc-high-performance-computing/208200273 Sutter Speaks: The Future of Concurrency
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. <small>(May 8, 2008)</small>
http://www.devx.com/go-parallel/Article/37839 Sutter Speaks: A Conversation with the Concurrency Whisperer
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. <small>(March 27, 2008)</small>
http://www.devx.com/go-parallel/Article/37573 Application-Level Abstractions for Lock-Free Data Sharing
Describes lock-free data sharing, otherwise known as "wait-free data sharing" as an alternative to the use of locks. <small>(December 21, 2007)</small>
http://www.ddj.com/cpp/205200452 Use Lock Hierarchies to Avoid Deadlock
Explains how to use lock hierarchies to avoid deadlock by assigning each shared resource a level that corresponds to its architectural layer. <small>(December 11, 2007)</small>
http://www.ddj.com/cpp/204801163 Apply Critical Sections Consistently
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. <small>(October 10, 2007)</small>
http://www.ddj.com/cpp/202401098 Concurrency with Erlang
To avoid problems with shared state working with multiple threads, Vinoski recommends a programming language like Erlang rather than C++ or Java. <small>(September, 2007)</small>
http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/2007/10&file=w5tow.xml&xsl=article.xsl& The Pillars of Concurrency
This article makes the case that a consistent mental model is needed to talk about concurrency. <small>(July 2, 2007)</small>
http://www.ddj.com/cpp/200001985 Multi-threaded Debugging Techniques
Describes a number of general purpose debugging techniques for multi-threaded applications. <small>(April 23, 2007)</small>
http://www.ddj.com/cpp/199200938 It's (Not) All Been Done
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. <small>(September, 2006)</small>
http://www.gotw.ca/publications/guest-ed-200609.htm Lock-free Interprocess Communication
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. <small>(June 15, 2006)</small>
http://www.ddj.com/cpp/189401457 The Problem with Threads
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. <small>(May, 2006)</small>
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& Software and the Concurrency Revolution
Focuses on the implications of concurrency for software and its consequences for both programming languages and programmers. (Herb Sutter and James Larus) <small>(September, 2005)</small>
http://acmqueue.com/modules.php?name=Content&pa=showpage&pid=332 The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency. <small>(March, 2005)</small>
http://www.gotw.ca/publications/concurrency-ddj.htm Introduction to Priority Inversion
Gives an introduction to priority inversion and shows a pair of techniques to avoid them. <small>(March, 2002)</small>
http://www.embedded.com/story/OEG20020321S0023 Fundamentals of Multithreading
Technical article, covering Amdahl's Law, latencies and bandwidth, on-chip multiprocessing, Jackson technology, and simultaneous multithreading. (SystemLogic.net) <small>(June 15, 2001)</small>
http://www.slcentral.com/articles/01/6/multithreading/ volatile - Multithreaded Programmer's Best Friend
Discusses the usage of the volatile keyword in multithreaded C++ programs. <small>(February, 2001)</small>
http://www.ddj.com/cpp/184403766
Cigarettes guide
|