At 22:48 01/09/00, Michael Bacarella wrote:
>Q: Why do we need threads?
>A: Because on some operating systems, task switches are expensive.
>Q: So, threads are a hack to get around operating systems that suck?
urgh, i think you've missed the point.
while threads /may/ be abused by many applications where fork() or
decent-event-queue/state-machine would probably produce much better
performance (i believe some of the java libraries are a perfect example of
this), there are _MANY_ applications where threads work, work well, and are
superior to the alternatives available (fork with shm segments).
one such example is cpu compultationally-expensive work where some degree
of working-set is required to be shared between processes. one could use
fork(), run multiple instances, have them register to a shm segment and
then implement some form of IPC between them.
alternatively, you could create 'n' work threads where "n == NR_CPUs" with
the working-set automatically available to all worker threads. for
whatever synchronization is required, you don't have to write your IPC
mechanism - mutexes come standard with things like pthreads. (of course,
there is no excuse for bad programming or bad algorithms; mutex use should
be kept to a minimum). perhaps you then need this application to then do
bulk disk-i/o? one-thread-per-disk-spindle works nicely in this scenario too.
threads are useful and powerful. perhaps the real problem with threads are
that it is too easy to write bad code using them.
-- Lincoln Dale Content Services Business Unit firstname.lastname@example.org cisco Systems, Inc. | | || || +1 (408) 525-1274 bldg G, 170 West Tasman |||| |||| +61 (3) 9659-4294 << San Jose CA 95134 ..:||||||:..:||||||:..
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to email@example.com Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:12 EST