text: Why is concurrency a hot topic again? If you keep up with current events, you see a growing presence of material about threading and concurrency. And, if you are like most working Java developers, you've ignored it for the most part. Yeah, we know, threading is hard, but why should I care? I write code that runs in a AppServer, and it does all that hard junk for me. It turns out that you should care. Our profession has this annoying habit of finding new ways to make things more difficult, and we're about to hit another one of those inflection points. This issue is about concurrency; this article, which traces several emerging trends that intersect concurrency, is about why you should read the rest of the articles.
  Options to Program Concurrency in Pure Java
  Programming concurrency in Java has evolved since the days of the JDK 1.0 multithreading API. Today, you have three options on hand, all in pure Java: the modern JDK model which often involves synchronization, the Software Transaction Memory (STM) model which enables lock free programming, and actor based concurrency which enables both lock free and shared mutability free programming. In this article we'll take an example and implement it using all these three models and discuss the pros and cons.
  Concurrency At Scale: Parallel Execution with MapReduce
  chips; Bytecode with our optimized virtual machines; Java, Groovy, Scala, and Clojure with their expanding threading and actor libraries. But there's yet another level of abstraction to concurrency that is taking the programming world by storm. Its name is MapReduce. When a developer hears the word MapReduce, the immediate thought tends to be binary: Google or Hadoop. Those are both significant players in this patented framework and larger set of abstract ideas, but there are many lesser-known but important implementations of this large-scale "divide and conquer" computation. In this article, we'll explore the origins, ideas, implementations and derivatives of computing at scale with the MapReduce framework and its ever multiplying offspring.
  NetKernel: Concurrency Inside
  Functional programming languages that promote highly-concurrent application development are currently en vogue on the Java Virtual Machine (JVM) in order to take advantage of modern, multi-core hardware architectures. Clojure, Scala and Groovy are being used to produce frameworks like Akka and GPars. Solving the problem at the language level is one approach to the problem. NetKernel, a resource-oriented computing platform, solves the problem architecturally.