Re: Threading in new C++ standard
On 16 avr, 18:21, Ke Jin <kjin...@gmail.com> wrote:
On Apr 15, 3:28 pm, "Dann Corbit" <dcor...@connx.com> wrote:
Rather than create a new way of doing
things:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2497.htm=
l
why not just pick up ACE into the existing
standard:http://www.cse.wustl.edu/~schmidt/ACE.html the same
way that the STL (and subsequently BOOST) have been
subsumed? Since it already runs on zillions of platforms,
they have obviously worked most of the kinks out of the
generalized threading and processes idea (along with many
other useful abstractions).
First, ACE thread is a library based solution. There are many
discussions on why C++0x thread choose a new language based
approach instead (See <http://www.artima.com/forums/flat.jsp?
forum=226&thread=180936> and Boehm's article of "threads
cannot be implemented as a library").
I don't think that that's entirely the problem. There are
different levels of standardizing threads---ACE, like Boost, and
all of the other threading libraries I've seen for C++, seem to
content themselves with just defining a more or less "standard"
interface to whatever the OS offers. They don't address the
language level problems, nor do they attempt to (nor can they,
really).
The standard, obviously, has to, and threading is more than just
a library issue in the standard. But the standard also has to
address the interface: how the user starts a thread,
synchronizes different threads, etc. And that is a library
issue.
IMHO, there is a serious problem at this level. I don't think
that the actual technologies are mature enough. Every new
library which comes out does it differently, and we don't have
enough experience with any of them to really say what is best.
On the other hand, politically, it is a must if C++ is to
survive and prosper. So we'll do the best we can, and hope that
whatever we do won't cause problems down the road, when we have
some real experience under our belts.
(It's worth pointing out that while normally, a standard should
only standardize existing practice, in this case, the "existing
practice" is that most threaded programs have subtle bugs, and
don't work correctly in some special cases.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34