Follow @BartoszMilewski
By popular demand I turned my introductory webinar into a video presentation. The purpose of this 50 min presentation is to familiarize the viewer with the basic ideas of concurrent programming. Here’s the list of topics:
- Processes vs. Threads
- Multithreading vs. Parallelization
- Shared Memory vs. Message Passing
- Data Races and Atomicity Violations
- Relaxed Memory Models
- Sequential Consistency and DRF Guarantee
- Risks of Concurrency
- Debugging Concurrent Programs
Comments and suggestions for future videos are very welcome.
June 27, 2011 at 12:47 pm
Kudos to you 🙂
June 30, 2011 at 12:28 am
Very helpful. Thanks.
Any suggestion to learn a bit further?
July 9, 2011 at 4:37 am
Good stuff! Thank you for posting.
One comment regarding the multithreading/parallelization division: I see tasks as a useful abstraction built on top of threads. Programming with tasks is essentially multithreading, but the multithreading part is not exposed. For me, it’s more like explicit vs implicit multithreading.
July 9, 2011 at 10:43 am
That’s true, ultimately tasks are run on top of threads, but for me it’s enough of a different abstraction to be separated from threads. A programmer shouldn’t have to know how tasks are implemented in order to use them. “They might run in parallel,” that’s all you need to know to be successful in task-based programming.
July 31, 2011 at 5:32 pm
[…] Read the whole article […]
January 9, 2013 at 6:11 am
Link to the video is broken. Where could I find it
January 9, 2013 at 4:39 pm
I fixed the link.