Abstract
Systematic techniques for dealing with concurrency can be very helpful in concurrent programming. In his concurrent programming text, Andrews [2] describes a technique for developing concurrent programs based on first developing solutions using course-grained atomic commands and atomic await primitives (which are usually not available in real programming environments), then systematically transforming the solution to an implementation that uses available synchronization primitives. Transformations are known for semaphores, conditional critical regions, and monitors. In this paper, transformations are given for the synchronization constructs provided by the Java programming language [1]. Familiarity with the basic facilities to support concurrency provided by Java is assumed.
This is a preview of subscription content, access via your institution.
References
Arnold, K., Gosling, J.: The Java™ Programming Language. Addison-Wesley, 1996
Gregory, R.A.: Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Company, Inc., 1991
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
Hoare, C.A.R.: Monitors: An operating system structuring concept. Communications of the ACM, 17(10): 549–557, 1974
Lea, D.: Concurrent Programming in Java™: Design Principles and Patterns. Addison-Wesley, 1997
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was supported in part by the University of Florida and the Air Force Office of Scientific Research grant 4514209-12
Rights and permissions
About this article
Cite this article
Sanders, B.A. Using atomic await commands to develop concurrent programs in Java. Software - Concepts & Tools 19, 168–174 (2000). https://doi.org/10.1007/s003789900004
Published:
Issue Date:
DOI: https://doi.org/10.1007/s003789900004
Key words
- Concurrent programming
- Atomic await
- Java