Though languages like Scala and Erlang rely on 'message passing' -- based on the Actors model -- to deal with concurrency and parallelism issues needed to exploit multicore processors by individual applications, threading is also often used to deal with these same problems. This post by Obi Ezechukwu explores a particular pattern in threading named 'thread gate' as it applies to the Java language. Read the entire post 'Java concurrency with thread gates': http://www.javaworld.com/javaworld/jw-03-2009/jw-03-java-concurrency-with-thread-gates.html