skip to main content
Skip header Section
Concurrent Programming in Java. Second Edition: Design Principles and PatternsOctober 1999
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-201-31009-2
Published:01 October 1999
Pages:
432
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

The book targets intermediate to advanced programmers interested in mastering the complexities of concurrent programming. Taking a design pattern approach, the book offers standard design techniques for creating and implementing components that solve common concurrent programming challenges. The numerous code examples throughout help clarify the subtleties of the concurrent programming concepts discussed.

Cited By

  1. ACM
    Lesani M, Xia L, Kaseorg A, Bell C, Chlipala A, Pierce B and Zdancewic S (2022). C4: verified transactional objects, Proceedings of the ACM on Programming Languages, 6:OOPSLA1, (1-31), Online publication date: 29-Apr-2022.
  2. ACM
    Ferles K, Van Geffen J, Dillig I and Smaragdakis Y (2020). Symbolic Reasoning for Automatic Signal Placement, ACM SIGOPS Operating Systems Review, 54:1, (64-76), Online publication date: 31-Aug-2020.
  3. ACM
    Shin K, Ghoting A, Kim M and Raghavan H SWeG: Lossless and Lossy Summarization of Web-Scale Graphs The World Wide Web Conference, (1679-1690)
  4. ACM
    Ferles K, Van Geffen J, Dillig I and Smaragdakis Y (2018). Symbolic reasoning for automatic signal placement, ACM SIGPLAN Notices, 53:4, (120-134), Online publication date: 2-Dec-2018.
  5. ACM
    Santos R, Rodriguez N and Ierusalimschy R Revisiting monitors Proceedings of the XXII Brazilian Symposium on Programming Languages, (75-82)
  6. ACM
    Ferles K, Van Geffen J, Dillig I and Smaragdakis Y Symbolic reasoning for automatic signal placement Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, (120-134)
  7. Zhang Y (2017). Improving the learning of parallel programming using software refactoring, Computer Applications in Engineering Education, 25:1, (112-119), Online publication date: 1-Jan-2017.
  8. ACM
    Spiegelman A, Golan-Gueta G and Keidar I (2016). Transactional data structure libraries, ACM SIGPLAN Notices, 51:6, (682-696), Online publication date: 1-Aug-2016.
  9. ACM
    Spiegelman A, Golan-Gueta G and Keidar I Transactional data structure libraries Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, (682-696)
  10. ACM
    Pinto G, Torres W and Castor F A study on the most popular questions about concurrent programming Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools, (39-46)
  11. ACM
    Marques E, Martins F and Simões M Cooperari Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools, (200-206)
  12. ACM
    De Wael M, Marr S and Van Cutsem T Fork/join parallelism in the wild Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools, (39-50)
  13. ACM
    Bliudze S, Mavridou A, Szymanek R and Zolotukhina A Coordination of software components with BIP: application to OSGi Proceedings of the 6th International Workshop on Modeling in Software Engineering, (25-30)
  14. ACM
    Bonetta D, Binder W and Pautasso C (2013). TigerQuoll, ACM SIGPLAN Notices, 48:8, (251-260), Online publication date: 23-Aug-2013.
  15. ACM
    Sagenschneider D OfficeFloor Proceedings of the 18th European Conference on Pattern Languages of Program, (1-27)
  16. ACM
    Ševčík J, Vafeiadis V, Zappa Nardelli F, Jagannathan S and Sewell P (2013). CompCertTSO, Journal of the ACM, 60:3, (1-50), Online publication date: 1-Jun-2013.
  17. ACM
    Bonetta D, Binder W and Pautasso C TigerQuoll Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, (251-260)
  18. ACM
    Okur S and Dig D How do developers use parallel libraries? Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, (1-11)
  19. ACM
    Arpit and Kumar A Refjav Proceedings of the International Conference on Advances in Computing and Artificial Intelligence, (150-154)
  20. ACM
    Kjolstad F, Dig D, Acevedo G and Snir M Transformation for class immutability Proceedings of the 33rd International Conference on Software Engineering, (61-70)
  21. ACM
    Dig D, Marrero J and Ernst M How do programs become more concurrent Proceedings of the 4th International Workshop on Multicore Software Engineering, (43-50)
  22. ACM
    Hohenstein U and Gleim U Using aspect-orientation to simplify concurrent programming Proceedings of the tenth international conference on Aspect-oriented software development companion, (29-40)
  23. ACM
    Long Y, Mooney S, Sondag T and Rajan H (2010). Implicit invocation meets safe, implicit concurrency, ACM SIGPLAN Notices, 46:2, (63-72), Online publication date: 26-Jan-2011.
  24. ACM
    Ŝevčik J, Vafeiadis V, Zappa Nardelli F, Jagannathan S and Sewell P Relaxed-memory concurrency and verified compilation Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (43-54)
  25. ACM
    Ŝevčik J, Vafeiadis V, Zappa Nardelli F, Jagannathan S and Sewell P (2011). Relaxed-memory concurrency and verified compilation, ACM SIGPLAN Notices, 46:1, (43-54), Online publication date: 26-Jan-2011.
  26. Zhong B, Feng M and Lung C A Green Computing Based Architecture Comparison and Analysis Proceedings of the 2010 IEEE/ACM Int'l Conference on Green Computing and Communications & Int'l Conference on Cyber, Physical and Social Computing, (386-391)
  27. ACM
    Rajan H Building scalable software systems in the multicore era Proceedings of the FSE/SDP workshop on Future of software engineering research, (293-298)
  28. ACM
    Rajan H, Kautz S and Rowcliffe W (2010). Concurrency by modularity, ACM SIGPLAN Notices, 45:10, (790-805), Online publication date: 17-Oct-2010.
  29. ACM
    Mooney S, Rajan H, Kautz S and Rowcliffe W Almost free concurrency! (using GOF patterns) Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, (249-250)
  30. ACM
    Rajan H, Kautz S and Rowcliffe W Concurrency by modularity Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (790-805)
  31. ACM
    Long Y, Mooney S, Sondag T and Rajan H Implicit invocation meets safe, implicit concurrency Proceedings of the ninth international conference on Generative programming and component engineering, (63-72)
  32. Sciampacone R, Sundaresan V, Maier D and Gray-Donald T (2010). Exploitation of multicore systems in a java virtual machine, IBM Journal of Research and Development, 54:5, (445-455), Online publication date: 1-Sep-2010.
  33. Modular verification of synchronization with reentrant locks Proceedings of the Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign, (59-68)
  34. ACM
    Upadhyaya G, Midkiff S and Pai V (2010). Using data structure knowledge for efficient lock generation and strong atomicity, ACM SIGPLAN Notices, 45:5, (281-292), Online publication date: 1-May-2010.
  35. ACM
    Harper K, Zheng J and Mahate S Experiences in initiating concurrency software research efforts Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (139-148)
  36. ACM
    Zheng J and Harper K Concurrency design patterns, software quality attributes and their tactics Proceedings of the 3rd International Workshop on Multicore Software Engineering, (40-47)
  37. ACM
    Sivaramakrishnan K, Ziarek L, Prasad R and Jagannathan S Lightweight asynchrony using parasitic threads Proceedings of the 5th ACM SIGPLAN workshop on Declarative aspects of multicore programming, (63-72)
  38. ACM
    Upadhyaya G, Midkiff S and Pai V Using data structure knowledge for efficient lock generation and strong atomicity Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (281-292)
  39. ACM
    Leijen D, Schulte W and Burckhardt S The design of a task parallel library Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications, (227-242)
  40. ACM
    Leijen D, Schulte W and Burckhardt S (2009). The design of a task parallel library, ACM SIGPLAN Notices, 44:10, (227-242), Online publication date: 25-Oct-2009.
  41. Bunde D (2009). A short unit to introduce multi-threaded programming, Journal of Computing Sciences in Colleges, 25:1, (9-20), Online publication date: 1-Oct-2009.
  42. Kułakowski K and Wąs J Two concurrent algorithms of discrete potential field construction Proceedings of the 8th international conference on Parallel processing and applied mathematics: Part II, (529-538)
  43. ACM
    Kraus J and Kestler H Multi-core parallelization in Clojure Proceedings of the 6th European Lisp Workshop, (8-17)
  44. ACM
    Attiya H, Guerraoui R, Hendler D and Kuznetsov P (2009). The complexity of obstruction-free implementations, Journal of the ACM, 56:4, (1-33), Online publication date: 1-Jun-2009.
  45. Dig D, Marrero J and Ernst M Refactoring sequential Java code for concurrency via concurrent libraries Proceedings of the 31st International Conference on Software Engineering, (397-407)
  46. ACM
    Fekete A (2009). Teaching about threading, ACM SIGACT News, 40:1, (51-57), Online publication date: 28-Feb-2009.
  47. ACM
    Bachmann P Deferred cancellation Proceedings of the 15th Conference on Pattern Languages of Programs, (1-17)
  48. ACM
    Gast H Patterns and traceability in teaching software architecture Proceedings of the 6th international symposium on Principles and practice of programming in Java, (23-31)
  49. ACM
    Welc A, Saha B and Adl-Tabatabai A Irrevocable transactions and their applications Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures, (285-296)
  50. ACM
    Otto F and Moschny T Finding synchronization defects in java programs Proceedings of the 1st international workshop on Multicore software engineering, (41-46)
  51. Crégut P Extracting control from data Proceedings of the 3rd conference on Trustworthy global computing, (41-56)
  52. ACM
    Loyauté G, Forax R and Roussel G A Java toolkit for the design and the automatic checking of server architectures Proceedings of the 5th international symposium on Principles and practice of programming in Java, (113-122)
  53. ACM
    Renggli L and Nierstrasz O Transactional memory for smalltalk Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007, (207-221)
  54. ACM
    Lee K, Fang X and Midkiff S Practical escape analyses Proceedings of the 3rd international conference on Virtual execution environments, (180-190)
  55. ACM
    Soares S and Borba P Towards reusable and modular aspect-oriented concurrency control Proceedings of the 2007 ACM symposium on Applied computing, (1293-1294)
  56. Lee Y, Choi E and Min D A delay time-based peak load control for stable performance Proceedings of the 4th international conference on Parallel and Distributed Processing and Applications, (329-340)
  57. ACM
    Hanmer R Error containment Proceedings of the 2006 conference on Pattern languages of programs, (1-11)
  58. ACM
    Lee K and Midkiff S A two-phase escape analysis for parallel java programs Proceedings of the 15th international conference on Parallel architectures and compilation techniques, (53-62)
  59. Lee Y and Min D An integration framework for trustworthy transactions Proceedings of the Third international conference on Autonomic and Trusted Computing, (217-226)
  60. ACM
    Cunha C, Sobral J and Monteiro M Reusable aspect-oriented implementations of concurrency patterns and mechanisms Proceedings of the 5th international conference on Aspect-oriented software development, (134-145)
  61. Heller S, Herlihy M, Luchangco V, Moir M, Scherer W and Shavit N A lazy concurrent list-based set algorithm Proceedings of the 9th international conference on Principles of Distributed Systems, (3-16)
  62. ACM
    Betin-Can A, Bultan T, Lindvall M, Lux B and Topp S Application of design for verification with concurrency controllers to air traffic control software Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, (14-23)
  63. ACM
    Buhr P and Harji A (2005). Implicit-signal monitors, ACM Transactions on Programming Languages and Systems, 27:6, (1270-1343), Online publication date: 1-Nov-2005.
  64. ACM
    Banerjee A and Naumann D (2005). Ownership confinement ensures representation independence for object-oriented programs, Journal of the ACM, 52:6, (894-960), Online publication date: 1-Nov-2005.
  65. Vignéras P Transparency and asynchronous method invocation Proceedings of the 2005 Confederated international conference on On the Move to Meaningful Internet Systems - Volume >Part I, (750-762)
  66. Wong C, Sura Z, Fang X, Lee K, Midkiff S, Lee J and Padua D Evaluating the impact of thread escape analysis on a memory consistency model-aware compiler Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing, (170-184)
  67. ACM
    Charles P, Grothoff C, Saraswat V, Donawa C, Kielstra A, Ebcioglu K, von Praun C and Sarkar V X10 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (519-538)
  68. ACM
    Charles P, Grothoff C, Saraswat V, Donawa C, Kielstra A, Ebcioglu K, von Praun C and Sarkar V (2005). X10, ACM SIGPLAN Notices, 40:10, (519-538), Online publication date: 12-Oct-2005.
  69. Rodríguez E, Dwyer M, Flanagan C, Hatcliff J, Leavens G and Robby Extending JML for modular specification and verification of multi-threaded programs Proceedings of the 19th European conference on Object-Oriented Programming, (551-576)
  70. ACM
    Sura Z, Fang X, Wong C, Midkiff S, Lee J and Padua D Compiler techniques for high performance sequentially consistent java programs Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, (2-13)
  71. Shanneb A and Potter J Flexible exclusion control for composite objects Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38, (277-286)
  72. ACM
    Bravenboer M and Visser E Concrete syntax for objects Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (365-383)
  73. ACM
    Bravenboer M and Visser E (2004). Concrete syntax for objects, ACM SIGPLAN Notices, 39:10, (365-383), Online publication date: 1-Oct-2004.
  74. Li L and Verbrugge C A practical MHP information analysis for concurrent java programs Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing, (194-208)
  75. Betin-Can A and Bultan T Verifiable Concurrent Programming Using Concurrency Controllers Proceedings of the 19th IEEE international conference on Automated software engineering, (248-257)
  76. ACM
    Benton N, Cardelli L and Fournet C (2004). Modern concurrency abstractions for C#, ACM Transactions on Programming Languages and Systems, 26:5, (769-804), Online publication date: 1-Sep-2004.
  77. Rodríguez E, Dwyer M, Hatcliff J and Robby A flexible framework for the estimation of coverage metrics in explicit state software model checking Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, (210-228)
  78. Kuhlins S and Korthaus A A multithreaded Java framework for information extraction in the context of enterprise application integration Proceedings of the 1st international symposium on Information and communication technologies, (518-523)
  79. ACM
    Nikolov L Teaching operating system at the technical university-Sofia Proceedings of the 4th international conference conference on Computer systems and technologies: e-Learning, (673-679)
  80. ACM
    Pinilla R and Gil M (2003). JVM, ACM SIGOPS Operating Systems Review, 37:2, (44-56), Online publication date: 1-Apr-2003.
  81. Van Belle W, Mens T and D'Hondt T Using genetic programming to generate protocol adaptors for interprocess communication Proceedings of the 5th international conference on Evolvable systems: from biology to hardware, (422-433)
  82. ACM
    Lee A A manageable web software architecture Proceedings of the 34th SIGCSE technical symposium on Computer science education, (229-233)
  83. ACM
    Lee A (2003). A manageable web software architecture, ACM SIGCSE Bulletin, 35:1, (229-233), Online publication date: 11-Jan-2003.
  84. ACM
    Hunleth F and Cytron R (2002). Footprint and feature management using aspect-oriented programming techniques, ACM SIGPLAN Notices, 37:7, (38-45), Online publication date: 17-Jul-2002.
  85. ACM
    Hunleth F and Cytron R Footprint and feature management using aspect-oriented programming techniques Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems, (38-45)
  86. ACM
    Greenhouse A and Scherlis W Assuring and evolving concurrent programs Proceedings of the 24th International Conference on Software Engineering, (453-463)
  87. Welch P, Aldous J and Foster J CSP Networking for Java (JCSP.net) Proceedings of the International Conference on Computational Science-Part II, (695-708)
  88. Strite D and Null L (2002). BACI debugger, Journal of Computing Sciences in Colleges, 17:4, (112-122), Online publication date: 1-Mar-2002.
  89. ACM
    Christopher T (2002). Facilities for parallelism, ACM SIGPLAN Notices, 37:2, (20-22), Online publication date: 1-Feb-2002.
  90. Edelstein O, Farchi E, Nir Y, Ratsaby G and Ur S (2002). Multithreaded java program test generation, IBM Systems Journal, 41:1, (111-125), Online publication date: 1-Jan-2002.
  91. Alur R and Grosu R Shared Variables Interaction Diagrams Proceedings of the 16th IEEE international conference on Automated software engineering
  92. ACM
    von Praun C and Gross T (2001). Object race detection, ACM SIGPLAN Notices, 36:11, (70-82), Online publication date: 1-Nov-2001.
  93. ACM
    von Praun C and Gross T Object race detection Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (70-82)
  94. ACM
    Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J and Griswold W (2001). Getting started with ASPECTJ, Communications of the ACM, 44:10, (59-65), Online publication date: 1-Oct-2001.
  95. Object Distribution with Local Information Proceedings of the The 21st International Conference on Distributed Computing Systems
  96. ACM
    Exton C and Kölling M Concurrency, objects and visualisation Proceedings of the Australasian conference on Computing education, (109-115)
  97. ACM
    Exton C (2000). Elucidate, ACM SIGCSE Bulletin, 32:3, (33-36), Online publication date: 1-Sep-2000.
  98. ACM
    Exton C Elucidate Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education, (33-36)
  99. ACM
    Lea D A Java fork/join framework Proceedings of the ACM 2000 conference on Java Grande, (36-43)
Contributors
  • SUNY Oswego

Recommendations