Concurrent Programming Reading list


This blog post is a collection of articles about threads, locks and concurrency.

Some context

I’ve had a lot of time to kill in the last few weeks so I recently completed a series of 3 classes, a specialization, on Coursera — Parallel, Concurrent, and Distributed Programming in Java Specialization.

The first two classes, Parallel Programming in Java and Concurrent Programming in Java were good revisions of material I had studied in one of my computer engineering classes at Purdue exactly an year ago. In the Distributed Programming in Java class I used Hadoop and Spark for the first time and revised more material related to networking and about different approaches to combine distribution with multithreading that I had learned in my classes at Purdue. This class was mostly about high-level abstractions and frameworks that are useful in distributed systems.

In the Concurrent Programming class I found various articles listed under the ‘Optional Reading’ section that were extremely resourceful. In college I had studied concurrency in my computer architecture class. I had referred to the textbook and my professor’s slides. I don’t have that course textbook or my professor’s slides anymore. So I’ve made this list of articles to be my go-to resource for fundamentals of concurrency.

The list

Threads

Structured Locks

Unstructured Locks

Liveness

Critical sections

Object-Based Isolation

Atomic Variables in Java

Read-Write Isolation

Optimistic Concurrency and some Java data structures

Linearizability

Miscellanious

  • Dining philosophers problem: an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them

Related Posts

Asynchronous Programming 101

Top-down introduction to Asynchronous Programming in C#.

Pictures I clicked in the past 12 months that I am in awe of today

I was recently going through pictures that I had clicked in the past 12 months. As I did so I came across pictures I am in awe of today. This post is a collection of some of those pictures.

A Most Life Affirming Article by Riva Tez

“To be in awe. That’s what the days are for.”

Sky Colors in US Tech Hubs

Using open data to compare daily sky colors all year long in the major four major US tech-hubs of San Francisco, Seattle, Boston, New York City