Skip to content
You are not logged in |Login  
     
Limit search to available items
62 results found. sorted by date .
Record:   Prev Next
Resources
More Information
Bestseller
BestsellerE-book
Author Fernández González, Javier.

Title Mastering Concurrency Programming with Java 9 - Second Edition.

Publication Info. Birmingham : Packt Publishing, 2017.

Item Status

Edition 2nd ed.
Description 1 online resource (507 pages)
text file
Contents Cover ; Copyright; Credits; About the Author; About the Reviewer; www.PacktPub.com; Customer Feedback; Table of Contents; Preface; Chapter 1: The First Step -- Concurrency Design Principles; Basic concurrency concepts; Concurrency versus parallelism; Synchronization; Immutable object; Atomic operations and variables; Shared memory versus message passing; Possible problems in concurrent applications; Data race; Deadlock; Livelock; Resource starvation; Priority inversion; A methodology to design concurrent algorithms; The starting point -- a sequential version of the algorithm; Step 1 -- analysis.
Step 2 -- designStep 3 -- implementation; Step 4 -- testing; Step 5 -- tuning; Conclusion; Java Concurrency API; Basic concurrency classes; Synchronization mechanisms; Executors; The fork/join framework; Parallel streams; Concurrent data structures; Concurrency design patterns; Signaling; Rendezvous; Mutex; Multiplex; Barrier; Double-checked locking; Read-write lock; Thread pool; Thread local storage; Tips and tricks for designing concurrent algorithms; Identifying the correct independent tasks; Implementing concurrency at the highest possible level; Taking scalability into account.
Using thread-safe APIsNever assume an execution order; Preferring local thread variables over static and shared when possible; Finding the easier parallelizable version of the algorithm; Using immutable objects when possible; Avoiding deadlocks by ordering the locks; Using atomic variables instead of synchronization; Holding locks for as short a time as possible; Taking precautions using lazy initialization; Avoiding the use of blocking operations inside a critical section; Summary; Chapter 2: Working with Basic Elements -- Threads and Runnables; Threads in Java.
Threads in Java -- characteristics and statesThe Thread class and the Runnable interface; First example: matrix multiplication; Common classes; Serial version; Parallel versions; First concurrent version -- a thread per element; Second concurrent version -- a thread per row; Third concurrent version -- the number of threads is determined by the processors; Comparing the solutions; Second example -- file search; Common classes; Serial version; Concurrent version; Comparing the solutions; Summary; Chapter 3: Managing Lots of Threads -- Executors; An introduction to executors.
Basic characteristics of executorsBasic components of the Executor framework; First example -- the k-nearest neighbors algorithm; k-nearest neighbors -- serial version; K-nearest neighbors -- a fine-grained concurrent version; k-nearest neighbors -- a coarse-grained concurrent version; Comparing the solutions; Second example -- concurrency in a client/server environment; Client/server -- serial version; The DAO part; The command part; The server part; Client/version -- parallel version; The server part; The command part; Extra components of the concurrent server; The status command; The cache system.
Note The log system.
Summary Master the principles to make applications robust, scalable and responsiveAbout This Book* Implement concurrent applications using the Java 9 Concurrency API and its new components* Improve the performance of your applications and process more data at the same time, taking advantage of all of your resources* Construct real-world examples related to machine learning, data mining, natural language processing, and moreWho This Book Is ForThis book is for competent Java developers who have basic understanding of concurrency, but knowledge of effective implementation of concurrent programs or usage of streams for making processes more efficient is not requiredWhat You Will Learn* Master the principles that every concurrent application must follow* See how to parallelize a sequential algorithm to obtain better performance without data inconsistencies and deadlocks* Get the most from the Java Concurrency API components* Separate the thread management from the rest of the application with the Executor component* Execute phased-based tasks in an efficient way with the Phaser components* Solve problems using a parallelized version of the divide and conquer paradigm with the Fork / Join framework* Find out how to use parallel Streams and Reactive Streams* Implement the "map and reduce" and "map and collect" programming models* Control the concurrent data structures and synchronization mechanisms provided by the Java Concurrency API* Implement efficient solutions for some actual problems such as data mining, machine learning, and moreIn DetailConcurrency programming allows several large tasks to be divided into smaller sub-tasks, which are further processed as individual tasks that run in parallel. Java 9 includes a comprehensive API with lots of ready-to-use components for easily implementing powerful concurrency applications, but with high flexibility so you can adapt these components to your needs. The book starts with a full description of the design principles of concurrent applications and explains how to parallelize a sequential algorithm. You will then be introduced to Threads and Runnables, which are an integral part of Java 9's concurrency API. You will see how to use all the components of the Java concurrency API, from the basics to the most advanced techniques, and will implement them in powerful real-world concurrency applications. The book ends with a detailed description of the tools and techniques you can use to test a concurrent Java application, along with a brief insight into other concurrency mechanisms in JVM. Style and approachThis is a complete guide that implements real-world examples of algorithms related to machine learning, data mining, and natural language processing in client/server environments. All the examples are explained using a step-by-step approach.
Local Note eBooks on EBSCOhost EBSCO eBook Subscription Academic Collection - North America
Subject Java (Computer program language)
Java (Computer program language)
Parallel programming (Computer science)
Parallel programming (Computer science)
Genre/Form Electronic books.
Other Form: Print version: Gonzalez, Javier Fernandez. Mastering Concurrency Programming with Java 9 - Second Edition. Birmingham : Packt Publishing, ©2017
ISBN 1785887459
9781785887451 (electronic book)