Searchalot
 

Internet Directory - Top : Computers : Programming : Threads

Top : Computers : Programming : Threads (77 web sites)
C++
Java
POSIX
Win32
 Related Categories
Computers: Programming: Languages: Concurrent
Computers: Programming: Operating_Systems
 Related Web Pages

1024cores
A site devoted to lock-free algorithms, scalable architecture, multicore design patterns, parallel computations, threading libraries, tooling support and related topics.
http://www.1024cores.net/

A Thread Performance Comparison
Compares Windows NT and Solaris on a symmetric multiprocessor machine.
http://static.usenix.org/publications/library/proceedings/usenix-nt98/full_papers/zabatta/zabatta_html/zabatta.html

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.
http://www.drdobbs.com/cpp/application-level-abstractions-for-lock-/205200452

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.
http://www.drdobbs.com/parallel/apply-critical-sections-consistently/202401098

Avoid Exposing Concurrency: Hide It Inside Synchronous Methods
Explains where to start when trying to add concurrency to a mass of existing code.
http://www.drdobbs.com/parallel/avoid-exposing-concurrency-hide-it-insi/220600388

Avoiding the Perils of C++0x Data Races
Find out what dangers race conditions in general and C++0x data races in particular pose to concurrent code, as well as the strategies for avoiding them.
http://www.devx.com/cplus/Article/42725

Bibliography on Threads and Multithreading
Part of the Computer Science Bibliography Collection.
http://liinwww.ira.uka.de/bibliography/Os/threads.html

Break Up and Interleave Work to Keep Threads Responsive
Breaking up is hard to do, but interleaving can be even subtler.
http://www.drdobbs.com/parallel/break-up-and-interleave-work-to-keep-thr/217801299

Concurrency in the D Programming Language
Andrei Alexandrescu explains recent hardware changes allowing concurrency and how the D programming languages addresses these possibilities.
http://www.informit.com/articles/article.aspx?p=1609144

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

Deadlock: The Problem and a Solution
This article explains what deadlocks are and describes ways of circumventing deadlocks.
http://www.codeguru.com/cpp/misc/misc/threadsprocesses/article.php/c15545/

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

Fundamental Concepts of Parallel Programming
Explains fundamental concepts for moving from a linear to a parallel programming model
http://www.drdobbs.com/parallel/fundamental-concepts-of-parallel-program/212002418

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/

Introduction to Priority Inversion
Gives an introduction to priority inversion and shows a pair of techniques to avoid them.
http://www.embedded.com/electronics-blogs/beginner-s-corner/4023947/Introduction-to-Priority-Inversion

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.
http://www.gotw.ca/publications/guest-ed-200609.htm

It's Not Always Nice To Share
It isn't just languages that have poor support for thread local storage, but operating systems too
http://www.drdobbs.com/cpp/its-not-always-nice-to-share/217600495

Lock Options
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.
http://www.drdobbs.com/cpp/lock-options/212201754

Lock-Free Code: A False Sense of Security
Writing lock-free code can confound anyone-even expert programmers, as Herb shows in this article.
http://www.drdobbs.com/cpp/lock-free-code-a-false-sense-of-security/210600279

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.
http://www.drdobbs.com/cpp/lock-free-interprocess-communication/189401457

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.
http://www.drdobbs.com/parallel/maximize-locality-minimize-contention/208200273

Measuring Parallel Performance: Optimizing a Concurrent Queue
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.
http://www.drdobbs.com/parallel/measuring-parallel-performance-optimizin/212201163

Multi-threaded Algorithm Implementations
Explores effective uses of threads by looking at a multi-threaded implementation of the QuickSort algorithm and reports on situations where using threads will not help.
http://broadcast.oreilly.com/2009/06/may-column-multithreaded-algor.html

Multi-threaded Debugging Techniques
Describes a number of general purpose debugging techniques for multi-threaded applications.
http://www.drdobbs.com/cpp/multithreaded-debugging-techniques/199200938

Multithreaded File I/O
So far multithreaded file I/O is a under-researched field. Although its simple to measure, there is not much common knowledge about it. The measurements presented here show that multithreading can improve performance of file access directly, as well as indirectly by utilizing available cores to process the data read.
http://www.drdobbs.com/parallel/multithreaded-file-io/220300055

Practical Lock-Free Buffers
Looks at how lock-free programming avoids system failure by tolerating individual process failures.
http://www.drdobbs.com/parallel/practical-lock-free-buffers/219500200

Prefer Futures to Baked-In "Async APIs"
Explains that it's important to separate "what" from "how" when designing concurrent APIs.
http://www.drdobbs.com/parallel/prefer-futures-to-baked-in-async-apis/222301165

Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic
What's good for the function and the object is also good for the thread, the task, and the lock.
http://www.drdobbs.com/parallel/prefer-structured-lifetimes-local-neste/221601309

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://dunkels.com/adam/pt/

RT++
Higher order threads for C++; tutorial and reference manual.
http://www.risc.jku.at/software/rt++/

Real-world Concurrency
Describes some key principles that will help mastering the "black art" of writing multithreaded code.
http://queue.acm.org/detail.cfm?id=1454462

Sharing Is the Root of All Contention
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.
http://www.drdobbs.com/architecture-and-design/sharing-is-the-root-of-all-contention/214100002

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)
http://queue.acm.org/detail.cfm?id=1095421

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/

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.
http://www.gotw.ca/publications/concurrency-ddj.htm

The Many Faces of Deadlock
Explains that deadlock can happen whenever there is a blocking (or waiting) cycle among concurrent tasks.
http://www.drdobbs.com/parallel/the-many-faces-of-deadlock/209900973

The Pillars of Concurrency
This article makes the case that a consistent mental model is needed to talk about concurrency.
http://www.drdobbs.com/parallel/the-pillars-of-concurrency/200001985

Understanding Parallel Performance
Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs.
http://www.drdobbs.com/parallel/understanding-parallel-performance/211800538

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.
http://www.drdobbs.com/parallel/use-lock-hierarchies-to-avoid-deadlock/204801163

Use Thread Pools Correctly: Keep Tasks Short and Nonblocking
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.
http://www.drdobbs.com/parallel/use-thread-pools-correctly-keep-tasks-sh/216500409

Use Threads Correctly = Isolation + Asynchronous Messages
Motivates and illustrate best practices for using threads - techniques that will make concurrent code easier to write correctly and to reason about with confidence.
http://www.drdobbs.com/parallel/use-threads-correctly-isolation-asynch/215900465

Welcome to the Jungle
Herb Sutter is looking at how mainstream hardware is becoming permanently parallel, heterogeneous, and distributed.
http://herbsutter.com/welcome-to-the-jungle/

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.
http://www.drdobbs.com/cpp/whats-new-in-boost-threads/211600441

Writing Lock-Free Code: A Corrected Queue
Explores lock-free code by focusing on creating a lock-free queue.
http://www.drdobbs.com/parallel/writing-lock-free-code-a-corrected-queue/210604448

comp.programming.threads FAQ
Frequently asked questions (by Bryan O'Sullivan).
http://www.serpentine.com/blog/threads-faq/

volatile - Multithreaded Programmer's Best Friend
Discusses the usage of the volatile keyword in multithreaded C++ programs.
http://www.drdobbs.com/cpp/volatile-the-multithreaded-programmers-b/184403766