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
- Qin F, Zheng Z, Sui Y, Gong S, Shi Z and Trivedi K (2024). Cross-project concurrency bug prediction using domain-adversarial neural network, Journal of Systems and Software, 214:C, Online publication date: 1-Aug-2024.
- Mohan A, Jayaraman S and Jayaraman B (2024). A declarative approach to detecting design patterns from Java execution traces and source code, Information and Software Technology, 171:C, Online publication date: 1-Jul-2024.
- 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.
- 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.
- 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)
- 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.
- Santos R, Rodriguez N and Ierusalimschy R Revisiting monitors Proceedings of the XXII Brazilian Symposium on Programming Languages, (75-82)
- 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)
- 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.
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- Bonetta D, Binder W and Pautasso C (2013). TigerQuoll, ACM SIGPLAN Notices, 48:8, (251-260), Online publication date: 23-Aug-2013.
- Sagenschneider D OfficeFloor Proceedings of the 18th European Conference on Pattern Languages of Program, (1-27)
- Š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.
- Bonetta D, Binder W and Pautasso C TigerQuoll Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming, (251-260)
- 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)
- Arpit and Kumar A Refjav Proceedings of the International Conference on Advances in Computing and Artificial Intelligence, (150-154)
- Kjolstad F, Dig D, Acevedo G and Snir M Transformation for class immutability Proceedings of the 33rd International Conference on Software Engineering, (61-70)
- 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)
- 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)
- 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.
- Ŝ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)
- Ŝ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.
- 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)
- Rajan H Building scalable software systems in the multicore era Proceedings of the FSE/SDP workshop on Future of software engineering research, (293-298)
- Rajan H, Kautz S and Rowcliffe W (2010). Concurrency by modularity, ACM SIGPLAN Notices, 45:10, (790-805), Online publication date: 17-Oct-2010.
- 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)
- 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)
- 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)
- 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.
- Modular verification of synchronization with reentrant locks Proceedings of the Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign, (59-68)
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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.
- 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)
- Kraus J and Kestler H Multi-core parallelization in Clojure Proceedings of the 6th European Lisp Workshop, (8-17)
- 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.
- 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)
- Fekete A (2009). Teaching about threading, ACM SIGACT News, 40:1, (51-57), Online publication date: 28-Feb-2009.
- Bachmann P Deferred cancellation Proceedings of the 15th Conference on Pattern Languages of Programs, (1-17)
- 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)
- 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)
- Otto F and Moschny T Finding synchronization defects in java programs Proceedings of the 1st international workshop on Multicore software engineering, (41-46)
- Crégut P Extracting control from data Proceedings of the 3rd conference on Trustworthy global computing, (41-56)
- 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)
- 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)
- Lee K, Fang X and Midkiff S Practical escape analyses Proceedings of the 3rd international conference on Virtual execution environments, (180-190)
- Soares S and Borba P Towards reusable and modular aspect-oriented concurrency control Proceedings of the 2007 ACM symposium on Applied computing, (1293-1294)
- 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)
- Hanmer R Error containment Proceedings of the 2006 conference on Pattern languages of programs, (1-11)
- 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)
- Lee Y and Min D An integration framework for trustworthy transactions Proceedings of the Third international conference on Autonomic and Trusted Computing, (217-226)
- 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)
- 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)
- 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)
- 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.
- 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.
- 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)
- 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)
- 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)
- 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.
- 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)
- 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)
- 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)
- 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)
- Bravenboer M and Visser E (2004). Concrete syntax for objects, ACM SIGPLAN Notices, 39:10, (365-383), Online publication date: 1-Oct-2004.
- 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)
- 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)
- 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.
- 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)
- 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)
- 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)
- Pinilla R and Gil M (2003). JVM, ACM SIGOPS Operating Systems Review, 37:2, (44-56), Online publication date: 1-Apr-2003.
- 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)
- Lee A A manageable web software architecture Proceedings of the 34th SIGCSE technical symposium on Computer science education, (229-233)
- Lee A (2003). A manageable web software architecture, ACM SIGCSE Bulletin, 35:1, (229-233), Online publication date: 11-Jan-2003.
- 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.
- 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)
- Greenhouse A and Scherlis W Assuring and evolving concurrent programs Proceedings of the 24th International Conference on Software Engineering, (453-463)
- 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)
- Strite D and Null L (2002). BACI debugger, Journal of Computing Sciences in Colleges, 17:4, (112-122), Online publication date: 1-Mar-2002.
- Christopher T (2002). Facilities for parallelism, ACM SIGPLAN Notices, 37:2, (20-22), Online publication date: 1-Feb-2002.
- 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.
- Alur R and Grosu R Shared Variables Interaction Diagrams Proceedings of the 16th IEEE international conference on Automated software engineering
- von Praun C and Gross T (2001). Object race detection, ACM SIGPLAN Notices, 36:11, (70-82), Online publication date: 1-Nov-2001.
- 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)
- 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.
- Object Distribution with Local Information Proceedings of the The 21st International Conference on Distributed Computing Systems
- Exton C and Kölling M Concurrency, objects and visualisation Proceedings of the Australasian conference on Computing education, (109-115)
- Exton C (2000). Elucidate, ACM SIGCSE Bulletin, 32:3, (33-36), Online publication date: 1-Sep-2000.
- Exton C Elucidate Proceedings of the 5th annual SIGCSE/SIGCUE ITiCSEconference on Innovation and technology in computer science education, (33-36)
- Lea D A Java fork/join framework Proceedings of the ACM 2000 conference on Java Grande, (36-43)