---

developerWorks: Concurrency for Grown-Ups

“Many mistakes are made in the name of multi-processing. Most
academic programs and many programming texts explain the concepts
of concurrency clearly, but it’s a difficult topic, and nearly all
of us can use a refresher.

“Concurrency labels situations where more than one ‘application’
is running at a time. I quote ‘application’ here because the
meaning is context dependent. Linux hosts always fill their process
tables with a bunch of more-or-less simultaneous programs: network
protocol daemons, cron managers, the kernel itself, and often much
more. Linux is a multi-tasking operating system. It’s built for
such duty.

“On a typical uniprocessor host, tasks don’t really execute
simultaneously. The part of the kernel called the scheduler swaps
jobs in and out so that they all get a turn. Your browser downloads
during the same interval as you’re editing a program source, and
also playing a music track. Concurrency most often has to do with
this appearance of simultaneity…”


Complete Story

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis