[Live-devel] Problems with RTSPClient, CSeq variable and SANYO network cameras ...
Ross Finlayson
finlayson at live555.com
Fri Apr 2 01:10:54 PDT 2010
>I personally find your disdain for threads antiquated and naive
This shows a lack of understanding. It's like saying that the
designers of a bullet train have a "disdain" for air transportation,
or conversely that the designers of an aircraft have a "disdain" for
rail transport. On the contrary. We are talking about two
completely different computation models, each with their pros and
cons.
I have been programming with threads since the mid 1980s - but for
the LIVE555 libraries, I chose a single-threaded event-driven model
instead. This works well for the type of applications that these
libraries are typically used for, especially given that lots of
inexperienced programmers (far more than I had originally
anticipated, actually) are using the software.
If anyone is interested in this topic, I encourage them to view
Professor John Ousterhout's slide presentation:
http://www.softpanorama.org/People/Ousterhout/Threads/tsld001.htm
(Personally, I wouldn't state the conclusion quite as strongly as he
does, but - as a very experienced threads programmer myself - I agree
with the general argument.)
>BTW Have you ever encountered anyone that has ever successfully
>implemented a TaskScheduler that was multi-threaded?
In principle, it would be possible to replace the "event loop" with
an "event pool" that contains events (tasks) that could be claimed
and acted on concurrently by multiple threads (i.e., with each thread
claiming and acting on a single event (task) at a time). This would
not, however, eliminate potential problems with concurrent access to
shared data structures - so programmers (especially inexperienced
programmers) would still likely run into problems there. (Plus,
problems might arise from having events being handled in an
unexpected and non-deterministic order.) So, the "multi-threaded
event pool" would be a different computation model again from the
existing "single-threaded event loop" - and one that it's unlikely
that I would support, absent a complete redesign of the whole
software.
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
More information about the live-devel
mailing list