Concurrency in .NET


Book Description

Summary Concurrency in .NET teaches you how to build concurrent and scalable programs in .NET using the functional paradigm. This intermediate-level guide is aimed at developers, architects, and passionate computer programmers who are interested in writing code with improved speed and effectiveness by adopting a declarative and pain-free programming style. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Unlock the incredible performance built into your multi-processor machines. Concurrent applications run faster because they spread work across processor cores, performing several tasks at the same time. Modern tools and techniques on the .NET platform, including parallel LINQ, functional programming, asynchronous programming, and the Task Parallel Library, offer powerful alternatives to traditional thread-based concurrency. About the Book Concurrency in .NET teaches you to write code that delivers the speed you need for performance-sensitive applications. Featuring examples in both C# and F#, this book guides you through concurrent and parallel designs that emphasize functional programming in theory and practice. You'll start with the foundations of concurrency and master essential techniques and design practices to optimize code running on modern multiprocessor systems. What's Inside The most important concurrency abstractions Employing the agent programming model Implementing real-time event-stream processing Executing unbounded asynchronous operations Best concurrent practices and patterns that apply to all platforms About the Reader For readers skilled with C# or F#. About the Book Riccardo Terrell is a seasoned software engineer and Microsoft MVP who is passionate about functional programming. He has over 20 years' experience delivering cost-effective technology solutions in a competitive business environment. Table of Contents PART 1 - Benefits of functional programming applicable to concurrent programs Functional concurrency foundations Functional programming techniques for concurrency Functional data structures and immutability PART 2 - How to approach the different parts of a concurrent program The basics of processing big data: data parallelism, part 1 PLINQ and MapReduce: data parallelism, part 2 Real-time event streams: functional reactive programming Task-based functional parallelism Task asynchronicity for the win Asynchronous functional programming in F# Functional combinators for fluent concurrent programming Applying reactive programming everywhere with agents Parallel workflow and agent programming with TPL Dataflow PART 3 - Modern patterns of concurrent programming applied Recipes and design patterns for successful concurrent programming Building a scalable mobile app with concurrent functional programming




Concurrency and Nets


Book Description

Concurrency and Nets is a special volume in the series "Advances in Petri Nets". Prepared as a tribute to Carl Adam Petri on the occasion of his 60th birthday, it is devoted to an outstanding personality and his pioneering and fruitful scientific work. Part I (70 pages of over 600) presents the congratulatory addresses and invited talks that were given at an Anniversary Colloquium. The contributions of this part honor Carl Adam Petri and his work from many different perspectives. Part II is a collection of invited papers discussing various aspects of the theme Concurrency and Nets. These papers are contributed partly by researchers that were or are still associated with the Petri Institute at GMD and partly by researchers whose scientific work deals with Net Theory or related system models. The topics range from basic theoretical aspects to application oriented methods.




Application and Theory of Petri Nets and Concurrency


Book Description

This book constitutes the proceedings of the 39th International Conference on Application and Theory of Petri Nets and Concurrency, PETRI NETS 2018, held in Bratislava, Slovakia, in June 2018. Petri Nets 2017 is co-located with the 19th International Conference on Application of Concurrency to System Design, ACSD 2018. The 15 regular and 8 tool papers, with 1 invited talk presented together in this volume were carefully reviewed and selected from 33 submissions. The focus of the conference is on following topics: Petri Nets Synthesis; Analysis and Model Checking; Languages; Semantics and Expressiveness; and Tools.




Java Concurrency in Practice


Book Description

Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them. However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant. This book covers: Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model




Coloured Petri Nets


Book Description

Coloured Petri Nets (CPN) is a graphical language for modelling and validating concurrent and distributed systems, and other systems in which concurrency plays a major role. The development of such systems is particularly challenging because of inherent intricacies like possible nondeterminism and the immense number of possible execution sequences. In this textbook Jensen and Kristensen introduce the constructs of the CPN modelling language and present the related analysis methods in detail. They also provide a comprehensive road map for the practical use of CPN by showcasing selected industrial case studies that illustrate the practical use of CPN modelling and validation for design, specification, simulation, verification and implementation in various application domains. Their presentation primarily aims at readers interested in the practical use of CPN. Thus all concepts and constructs are first informally introduced through examples and then followed by formal definitions (which may be skipped). The book is ideally suitable for a one-semester course at an advanced undergraduate or graduate level, and through its strong application examples can also serve for self-study. An accompanying website offers additional material such as slides, exercises and project proposals. Book website: http://www.cs.au.dk/CPnets/cpnbook/




Concurrency in C# Cookbook


Book Description

If you're one of the many developers uncertain about concurrent and multithreaded development, this practical cookbook will change your mind. With more than 75 code-rich recipes, author Stephen Cleary demonstrates parallel processing and asynchronous programming techniques, using libraries and language features in .NET 4.5 and C# 5.0. Concurrency is becoming more common in responsive and scalable application development, but it’s been extremely difficult to code. The detailed solutions in this cookbook show you how modern tools raise the level of abstraction, making concurrency much easier than before. Complete with ready-to-use code and discussions about how and why the solution works, you get recipes for using: async and await for asynchronous operations Parallel programming with the Task Parallel Library The TPL Dataflow library for creating dataflow pipelines Capabilities that Reactive Extensions build on top of LINQ Unit testing with concurrent code Interop scenarios for combining concurrent approaches Immutable, threadsafe, and producer/consumer collections Cancellation support in your concurrent code Asynchronous-friendly Object-Oriented Programming Thread synchronization for accessing data




Concurrent Object-Oriented Programming and Petri Nets


Book Description

Concurrency and distribution have become the dominant paradigm and concern in computer science. Despite the fact that much of the early research in object-oriented programming focused on sequential systems, objects are a natural unit of distribution and concurrency - as elucidated early on by research on the Actor model. Thus, models and theories of concurrency, the oldest one being Petri nets, and their relation to objects are an attractive topic of study. This book presents state-of-the-art results on Petri nets and concurrent object-oriented programming in a coherent and competent way. The 24 thoroughly reviewed and revised papers are organized in three sections. The first consists of long papers, each presenting a detailed approach to integrating Petri nets and object-orientation. Section II includes shorter papers with emphasis on concrete examples to demonstrate the approach. Finally, section III is devoted to papers which significantly build on the Actor model of computation.




Coloured Petri Nets


Book Description




Lectures on Concurrency and Petri Nets


Book Description

This tutorial volume originates from the 4th Advanced Course on Petri Nets, ACPN 2003, held in Eichstätt, Germany in September 2003. In addition to lectures given at ACPN 2003, additional chapters have been commissioned to give a well-balanced presentation of the state of the art in the area. This book will be useful as both a reference for those working in the area as well as a study book for the reader who is interested in an up-to-date overview of research and development in concurrent and distributed systems; of course, readers specifically interested in theoretical or applicational aspects of Petri nets will appreciate the book as well.




Application and Theory of Petri Nets and Concurrency


Book Description

This book constitutes the proceedings of the 36th International Conference on Application and Theory of Petri Nets and Concurrency, PETRI NETS 2015, held in Brussels, Belgium, in June 2015. The 12 regular papers and 2 tool papers presented in this volume were carefully reviewed and selected from 34 submissions. In addition the book contains 3 invited talks in full paper length. The papers cover various topics in the field of Petri nets and related models of concurrency.