comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: question about tasks, multithreading and multi-cpu machines
Date: Thu, 16 Mar 2006 09:06:12 +0100
Date: 2006-03-16T09:06:12+01:00	[thread overview]
Message-ID: <dvb69k$88t$1@sunnews.cern.ch> (raw)
In-Reply-To: <biuje3-olg.ln1@newserver.thecreems.com>

Jeffrey Creem wrote:

> Actually, 
> threads is misleading since threads are just tasks minus rendevous. It 
> all just depends on your perspective. Since Ada had tasking before 
> (most) unix had threads I think Unix got the name wrong :)

In my humble opinion, Ada got it wrong in the first place.

{Pre-flame note: below is a very informal description of how I think 
about these terms while designing/programming/etc., not how they are 
defined in any language/system/etc. standard.}

What's funny, the terminology is correctly used in even simplest 
programs for project planning, organizers, and such.

The "task" is something that needs to be done. It's an objective, or a 
goal to achieve. (I'm not an English native speaker, but my dictionaries 
seem to confirm this.)

To actually perform any given work, some kind of "resource" is needed. 
Whether it is a human resource or a computing resource does not matter - 
what's important is that this "resource" is treated as an *ability* to 
perform work. What's even more important is that there might be unused 
resources lying around, which can be just used to perform some work if 
they are available.

Now, "thread" is a software resource that represents the ability of the 
system to do some work.

The difference between "task" and "thread" is that "task" is something 
to do, whereas "thread" is a way to do it.

The tasks in Ada do not match any of the above. Other languages (for 
example Java) also got it wrong, by treating threads as objects or even 
by allowing a programmer to "subclass" or "specialize" a thread class. 
None of the languages that I'm aware of allows me to treat tasks and 
threads as they really are, which means that everybody got it wrong in 
one way or another. :)

> So, the only thing I am trying to say here is that people seem to assume 
> that task, thread and process have some formal definition that is all 
> powerful. This is not true.

Right.

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



  parent reply	other threads:[~2006-03-16  8:06 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-14 16:26 question about tasks, multithreading and multi-cpu machines Norbert Caspari
2006-03-14 16:51 ` Pascal Obry
2006-03-16  4:27   ` Norbert Caspari
2006-03-16 10:04     ` Alex R. Mosteo
2006-03-14 17:18 ` Jean-Pierre Rosen
2006-03-16  4:22   ` Norbert Caspari
2006-03-16  6:58     ` Jean-Pierre Rosen
2006-03-14 18:49 ` Martin Krischik
2006-03-14 18:56 ` tmoran
2006-03-14 23:01 ` Jeffrey Creem
2006-03-15  1:15   ` Jeffrey R. Carter
2006-03-16  8:06   ` Maciej Sobczak [this message]
2006-03-16 10:23     ` Ole-Hjalmar Kristensen
2006-03-16 12:59     ` Dmitry A. Kazakov
2006-03-16 15:11       ` Larry Kilgallen
2006-03-16 15:50       ` Maciej Sobczak
2006-03-16 18:03         ` Jean-Pierre Rosen
2006-03-16 20:06           ` Dr. Adrian Wrigley
2006-03-17  3:26       ` Randy Brukardt
2006-03-16 20:06     ` Jeffrey R. Carter
2006-03-17  8:22       ` Maciej Sobczak
2006-03-17 11:36         ` Dmitry A. Kazakov
2006-03-17 14:23           ` Maciej Sobczak
2006-03-17 19:10             ` Dmitry A. Kazakov
2006-03-17 19:42         ` Jeffrey R. Carter
2006-03-18  0:27           ` tmoran
2006-03-25 21:28     ` Robert A Duff
     [not found]       ` <43gb22h4811ojjh308r2lqf5qqrujijjok@4ax.com>
2006-03-26  0:44         ` Robert A Duff
2006-03-15  6:46 ` Simon Wright
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox