Skip to main content

Using atomic await commands to develop concurrent programs in Java

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

  1. Arnold, K., Gosling, J.: The Java™ Programming Language. Addison-Wesley, 1996

  2. Gregory, R.A.: Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Company, Inc., 1991

  3. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995

  4. Hoare, C.A.R.: Monitors: An operating system structuring concept. Communications of the ACM, 17(10): 549–557, 1974

    Article  MATH  Google Scholar 

  5. Lea, D.: Concurrent Programming in Java™: Design Principles and Patterns. Addison-Wesley, 1997

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Beverly A. Sanders.

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

Reprints and Permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s003789900004

Key words

  • Concurrent programming
  • Atomic await
  • Java