Next: Sharing Mutable State
Up: Evolving the UNIX System
Previous: Topaz Overview
By a multithreaded interface we mean one usable by multithreaded
clients. Good interface design is a challenging art, and has a whole
literature of its own (for example, see Parnas [11] and
Lampson [9]). We have not found designing multithreaded
interfaces to be very much more difficult than designing single-threaded
ones. In one respect it is harder: care must be taken that serializing
access to shared mutable state defined by the interface does not restrict
the usefulness of that interface. In another respect it is easier: a
multithreaded interface can avoid the various ad hoc techniques used when
a single-threaded interface must deal with concurrency inherent in the
application. Threads provide a convenient framework for designing
solutions to the problem of cancelling undesired computations.
Paul McJones
8/28/1997