 |
Search Resources |
 |
|
 |
Threads |
 |
 |
Sponsored Links |
 |
 |
28 sites in Threads |
 |
-
Motivates and illustrate best practices for using threads - techniques that will make concurrent code easier to write correctly and to reason about with confidence.
-
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.
-
Describes some key principles that will help mastering the "black art" of writing multithreaded code.
-
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.
-
Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs.
-
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)
-
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)
-
This article explains what deadlocks are and describes ways of circumventing deadlocks.
-
Explores lock-free code by focusing on creating a lock-free queue.
-
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.
-
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.
-
Discusses the usage of the volatile keyword in multithreaded C++ programs.
-
Describes a number of general purpose debugging techniques for multi-threaded applications.
-
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.
-
Describes lock-free data sharing, otherwise known as "wait-free data sharing" as an alternative to the use of locks.
-
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.
-
To avoid problems with shared state working with multiple threads, Vinoski recommends a programming language like Erlang rather than C++ or Java.
-
Frequently asked questions (by Bryan O'Sullivan).
-
Provides example C++ classes implementing a series of synchronization objects useful for building portable (Solaris and Win32) multithreaded applications.
-
The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency.
-
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.
-
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.
-
Small application library for writing fast, highly scalable Internet programs on Unix-like platforms. Open source, MPL or GPL.
-
Technical article, covering Amdahl's Law, latencies and bandwidth, on-chip multiprocessing, Jackson technology, and simultaneous multithreading. (SystemLogic.net)
-
Gives an introduction to priority inversion and shows a pair of techniques to avoid them.
-
Bil Lewis's collection of frequently asked questions.
-
Higher order threads for C++; tutorial and reference manual.
-
Part of the Computer Science Bibliography Collection.
|