Newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!uunet!in1.uu.net!world!edwards
From: edwards@world.std.com (Jonathan Edwards)
Subject: Re: c++, smalltalk, and real-time
Message-ID: <D74s1F.CL4@world.std.com>
Organization: IntraNet, Inc.
References: <3mjk4m$ijf@news.Belgium.EU.net> <D73I6G.KMC@world.std.com> <patrick_d_logan.2.00163EC9@ccm.jf.intel.com>
Date: Sun, 16 Apr 1995 13:56:03 GMT
Lines: 42
Xref: glinda.oz.cs.cmu.edu comp.lang.c++:123381 comp.lang.smalltalk:22807 comp.object:29635

In article <patrick_d_logan.2.00163EC9@ccm.jf.intel.com>,
Patrick D. Logan <patrick_d_logan@ccm.jf.intel.com> wrote:
>In article <D73I6G.KMC@world.std.com> edwards@world.std.com (Jonathan Edwards) writes:
>
>>Smalltalk in particular does not support multithreading and multiprocessing, at
>>least in any commercially available implementation. 
>
>* Digitalk's supports their own internal threads.
>
>* QKS' STA supports threads, including the native OS threads when they exist.

>* Easel's next release of Enfin should support threads for Win32 as I 
>understand it.

This is misinformation. The word "thread" is highly abused.
"Internal" threads have nothing to do with REAL multithreading, which would
allow you to exploit multiple processors and have true concurrency.
Sometimes these are called "kernel threads".

Neither Digitalk nor QKS claim they will be able to do this, once you pin
them down.
I bet EASEL will neither, but I have been unable to get a definitive answer
from them.
All of them are just talking about interfaceing with external threads through
the C API, not running Smalltalk code in multiple threads.
At least QKS's internal threading is PREEMPTIVE, which is quite better than the
non-preemptive internal scheduling of all other Smalltalks.

The problems of retrofitting true multithreading into a single-threaded
ST VM are enormous. And the issues of how to parallelize GC (without which the
whole idea is moot) is a matter of active research.

This is a basic technical disadvantage of Smalltalk in comparison with C++,
and will not go away soon. Don't get me wrong: I am not advocating C++, I just
wish I could do multithreading in Smalltalk, and I wish people would stop
confusing the issue.

-- 
Jonathan Edwards				edwards@intranet.com
IntraNet, Inc					617-527-7020
One Gateway Center				FAX: 617-527-6779
Newton, MA 02158
