developerWorks: Concurrency for Grown-Ups
Dec 19, 2002, 05:30 (1 Talkback[s])
(Other stories by Cameron Laird)
"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
"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..."