Good Introduction to Threads and Shared Data Structures

20. June, 2014

Soon, we’ll have computers with 1024 cores but that won’t help unless software developers write code that make use of them.

To do that, you need a fundamental understanding on how threads work and what parallel algorithms are and what the real-world problems might be.

Dmitry Vyukov has created a web site “1024cores” which gives you both an introduction to the basics (what are we talking about? which tools to we have? what is a memory model and why should I care?) as well as some practical algorithms like concurrent skip lists with detailed descriptions of the problems that you will encounter and how to fix them.

If you want to know what the discussion is all about or if you want to polish your knowledge or if you need a specific solution, this is a good place to start 🙂

Jazoon 2011, Day 2 – Java Concurrent Animated – Victor Grazi

26. June, 2011

Java Concurrent Animated – Victor Grazi

One picture says more than a thousand words. Now imagine what an animation can say. Victor did several for us to better understand the classes in java.util.concurrent. You can find the software on sourceforge: javaconcurrenta

Here is an example:

Very nice. I know a lot about threads and concurrency (the Amiga had preemptive multitasking back in 1986) but even I was surprised by the ReentrantReadWriteLock example: If you have a writer waiting for the lock and another reader comes along, should it get the lock immediately or should it wait for the writer to complete?

My first instinct was to get all the (quick) readers out of the way but chances are that, when all readers have been processed, another one might have come along, effectively starving the writer.