InfoQ Homepage Multi-threading Content on InfoQ
-
Why Microsoft Believes that VB and C# Need an Asynchronous Syntax
The new Async CPT for VB and C# looks like it may actually make it into the core language. But with all the emphasis on multi-core systems, why is Microsoft investing so heavily in syntax for designed specifically for making single-threaded asynchronous programming easier?
-
C# 4.0 "Fixes" Deadlock Issue
C# 4.0 implemented a change that assured optimized and non -optimized compiles yielded consistent results. This "Fix" emphasized some design problems with locking mechanisms.
-
Concurrent Basic – A Declarative Language for Message-Based Concurrency.
Concurrent Basic represents a possible future for Visual Basic. Though based on work done in C# research languages such as Polyphonic C# and C-Omega, Visual Basic was chosen for its inherent predisposition towards declarative programming. The syntax is even inspired by VB’s declarative event handlers.
-
Building a Better Thread-safe Collection
Jared Parsons proposes a better thread-safe collection. By using a design pattern that strongly encourages, but not enforces, thread-safety, his API is both easy to use and easy to understand.
-
Replacing the ThreadPool with Tasks, Continuations, and Futures
.NET 4 is adding support for tasks. Tasks are lightweight units of work much like queue work items, but with support for waits, continuations, and futures. Tasks can also support parent-child relationships with waits and cancellations being automatically threaded through them.
-
Article: Using the Concurrency and Coordination Runtime
Nick Gunn provides a practical introduction Using the Concurrency and Coordination Runtime. CCR radically changes the way multi-threaded applications are written in .NET, shifting the focus from threads and locks to lightweight, asynchronous tasks. The Concurrency and Coordination Runtime, also known as CCR, offers actor-style concurrency for .NET applications.
-
Bill McCarthy asks “Are Iterators Fundamentally Flawed?”
Iterators are at the core of .NET programming. Only rarely do developers actually work against indexed data, preferring to use for-each loops for most tasks. But is this inherently sequential access method appropriate as we turn more to multi-threaded applications?
-
Article: Introducing Multithreaded Programming to JavaScript
In this article, which was originally published on InfoQ Japan, Daisuke Maki describes some of the challenges of developing responsive AJAX applications, and presents Concurrent.Thread as a solution to easing the complexity involved in asynchronous communcation in AJAX.
-
Article: Do Java 6 threading optimizations actually work? - Part II
In part 2 of "Java 6 threading optimizations" article series, author Jeroen Borgers examines various threading optimizations and JVM arguments to manage them. He also talks about factors like On Stack Replacement (OSR), Heap Management and Lock object data size which could significantly affect the performance of multi-threaded java applications.
-
Concurrency Presentation Scheduled for the PDC Pre-Conference Sessions
Microsoft's The Parallel Computing Platform team will be presenting on Concurrent, Multi-core Programming for Windows and .NET during the PDC pre-conference Sessions. These sessions are day-long, in-depth presentations on specific topics. Held the Sunday before the main conference, a separate registration is required.
-
Breaking Changes in the .NET ThreadPool
When .NET 2.0 SP 1 was released with .NET 3.5, the thread pool underwent some significant changes. As Michael C. Kennedy discovered, not all were for the best.
-
Microsoft, Intel to invest $20M in parallel computing
Microsoft and Intel have recently announced a $20 million joint investment into parallel computing over the next 5 years.
-
Common Ruby MVM API research kicked off
Research on the topic of Multiple VM (MVM) Ruby will be conducted at the University of Tokyo together with Sun's JRuby team. The work will investigate issues such as communication between VMs and a common API across all Ruby implementations, with solutions provided initially for Ruby and JRuby.
-
Rubinius adds Multi-VM support
Rubinius adds a new feature called "Multi-VM", which allows to run multiple Ruby VMs inside an OS process. We talked with Evan Phoenix of the Rubinius project about the benefits and implementation of this feature.
-
Programming for Parrallelism: The Parallel Hierarchies Pattern
Multi-core processors offer new performance opportunities. Shekhar Borkar from Intel highlighted, however, that software development practices have to be retooled to leverage this potential. In this vein, Prof. Jorge L. Ortega-Arjona from the National Autonomous University of Mexico has recently introduced a new architectural pattern for parallel programming: Parallel Hierarchies pattern.