InfoQ Homepage Concurrency Content on InfoQ
-
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.
-
JRuby and Clojure - A Good Match?
Clojure is a JVM based LISP with interesting properties for concurrency (persistent data structures, STM). New libraries for Clojure are popping up - and some of them are inspired by Ruby libraries such as HAML, ActiveRecord, Rack, and others. We also look at combining JRuby and Clojure to get the best of both Ruby and LISP world, as well as access to technologies such as STM.
-
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.
-
Clojure Brings STM, LISP to the JVM
Clojure, a LISP-style language for the JVM, is gaining interest quickly. One of the reasons is definitely its approach to concurrency which builds on Software Transactional Memory (STM). We talked to Stuart Halloway who's writing the first book on Clojure for the Pragmatic Programmers.
-
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.
-
Interview: Joe Armstrong About Erlang
In this interview filmed during QCon London 2008, Joe Armstrong, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.
-
More Languages on top of Erlang Virtual Machine
Erlang virtual machine – BEAM – hosts an increasing number of languages. Reia, a Python/Ruby like scripting language and Lisp Flavoured Erlang have recently been released. Debasish Ghosh reflects on this trend while other authors try to outline other possible language variants inspired by Ruby or Haskell.
-
Presentation: Concurrency: Past and Present
In this presentation from QCon London 2008, Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, Software Transactional Memory, the history of concurrency, alternatives to threads, Erlang, Scala, and recommendations for concurrency in Java.
-
Fibers Roundup: NeverBlock Now Rails Compatible, "Poor Man's" Fibers For 1.8
NeverBlock released a new version of their library - this time with support for Rails and Ruby 1.8. The 1.8 support uses Amun Gupta's "Poor Man's" Fiber code which implements Fibers using Threads.
-
Article: Using Ruby Fibers for Async I/O: NeverBlock and Revactor
Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project (which provides support for MySQL and PostgreSQL) and Tony Arcieri of the Revactor project.
-
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?
-
Databases Roundup: Data Sharding for ActiveRecord and Faster Postgres IO
In this databases roundup we take a look at DataFabric, FiveRun's recently open sourced data sharding plug-in for ActiveRecord. Also: a look at speeding up Postgres data access using the asynchronous client API and Ruby 1.9's Fibers.
-
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.