Concurrent programming in Smalltalk-80

  • Authors:
  • R. Steigerwald;M. Nelson

  • Affiliations:
  • Department of Computer Science, Naval Postgraduate School, Monterey, California;Department of Computer Science, Naval Postgraduate School, Monterey, California

  • Venue:
  • ACM SIGPLAN Notices
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

Smalltalk-80 provides only a minimal set of concurrency control mechanisms. The fork and newProcess messages can be used to indicate that two (or more) processes can run concurrently, and a Semaphore class is provided which can be used to achieve synchronization.These features are not enough, however, to simulate true concurrency. A process will not yield the processor until it can no longer continue. This makes it all too easy to unintentionally produce code which is dependent upon yielding the processor at some specific point.The Delay and Random classes were used to force processes to yield nondeterministically. This allowed a single processor, context switching environment to be simulated. The producer/consumer problem was used to exercise the concurrent mechanisms in this investigation.