Java 9 concurrency cookbook : master the art of fast, effective Java development with the power of concurrent and parallel programming / Javier Fernández González.

Master the art of fast, effective Java development with the power of concurrent and parallel programming About This Book Get detailed coverage of important recipes on multi-threading and parallel programming This book takes a close look at the Java 9 APIs and their impact on concurrency See practica...

Full description

Saved in:
Bibliographic Details
Online Access: Full Text (via O'Reilly/Safari)
Main Author: González, Javier Fernández (Author)
Other title:Java nine concurrency cookbook
Format: eBook
Language:English
Published: Birmingham, UK : Packt Publishing, 2017.
Edition:Second edition.
Subjects:

MARC

LEADER 00000cam a2200000 i 4500
001 b10303707
006 m o d
007 cr |||||||||||
008 170512s2017 enka o 000 0 eng d
005 20240829145520.0
020 |a 9781787125438 
020 |a 1787125432 
020 |z 9781787124417 
029 1 |a CHBIS  |b 010906691 
029 1 |a CHVBK  |b 486392325 
029 1 |a GBVCP  |b 1004864078 
035 |a (OCoLC)safo987006610 
035 |a (OCoLC)987006610 
037 |a safo9781787124417 
040 |a UMI  |b eng  |e rda  |e pn  |c UMI  |d IDEBK  |d OCLCF  |d OCLCQ  |d CEF  |d KSU  |d OCLCQ  |d UAB  |d OCLCO  |d OCLCQ  |d OCLCO  |d OCLCL  |d OCLCQ  |d DXU 
049 |a GWRE 
050 4 |a QA76.73.J38 
100 1 |a González, Javier Fernández,  |e author. 
245 1 0 |a Java 9 concurrency cookbook :  |b master the art of fast, effective Java development with the power of concurrent and parallel programming /  |c Javier Fernández González. 
246 3 |a Java nine concurrency cookbook 
250 |a Second edition. 
264 1 |a Birmingham, UK :  |b Packt Publishing,  |c 2017. 
300 |a 1 online resource (1 volume) :  |b illustrations 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a volume  |b nc  |2 rdacarrier 
588 0 |a Online resource; title from title page (Safari, viewed May 11, 2017). 
505 0 |a Cover -- Copyright -- Credits -- About the Author -- About the Reviewer -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Thread Management -- Introduction -- Creating, running, and setting the characteristics of a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Interrupting a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- Controlling the interruption of a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Sleeping and resuming a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- Waiting for the finalization of a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- Creating and running a daemon thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- Processing uncontrolled exceptions in a thread -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using thread local variables -- Getting ready -- How to do it... -- How it works... -- There's more... -- Grouping threads and processing uncontrolled exceptions in a group of threads -- Getting ready -- How to do it... -- How it works... -- See also -- Creating threads through a factory -- Getting ready -- How to do it... -- How it works... -- See also -- Chapter 2: Basic Thread Synchronization -- Introduction -- Synchronizing a method -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using conditions in synchronized code -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Synchronizing a block of code with a lock -- Getting ready -- How to do it... -- How it works... -- There's more... -- Avoiding deadlocks -- See also. 
505 8 |a Synchronizing data access with read/write locks -- Getting ready... -- How to do it... -- How it works... -- See also -- Using multiple conditions in a lock -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Advanced locking with the StampedLock class -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Chapter 3: Thread Synchronization Utilities -- Introduction -- Controlling concurrent access to one or more copies of a resource -- Getting ready -- How to do it... -- How it works... -- There's more... -- Fairness in semaphores -- See also -- Waiting for multiple concurrent events -- Getting ready -- How to do it... -- How it works... -- There's more... -- Synchronizing tasks in a common point -- Getting ready -- How to do it... -- How it works... -- There's more... -- Resetting a CyclicBarrier object -- Broken CyclicBarrier objects -- See also -- Running concurrent-phased tasks -- Getting ready -- How to do it... -- How it works... -- There's more... -- Registering participants in Phaser -- Forcing the termination of Phaser -- See also -- Controlling phase change in concurrent-phased tasks -- Getting ready -- How to do it... -- How it works... -- See also -- Exchanging data between concurrent tasks -- Getting ready -- How to do it... -- How it works... -- There's more... -- Completing and linking tasks asynchronously -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also... -- Chapter 4: Thread Executors -- Introduction -- Creating a thread executor and controlling its rejected tasks -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Executing tasks in an executor that returns a result -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also. 
505 8 |a Running multiple tasks and processing the first result -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Running multiple tasks and processing all the results -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Running a task in an executor after a delay -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Running a task in an executor periodically -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Canceling a task in an executor -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Controlling a task finishing in an executor -- Getting ready -- How to do it... -- How it works... -- See also -- Separating the launching of tasks and the processing of their results in an executor -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Chapter 5: Fork/Join Framework -- Introduction -- Creating a fork/join pool -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Joining the results of the tasks -- How to do it... -- How it works... -- There's more... -- See also -- Running tasks asynchronously -- How to do it... -- How it works... -- There's more... -- See also -- Throwing exceptions in the tasks -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Canceling a task -- Getting ready... -- How to do it... -- How it works... -- See also -- Chapter 6: Parallel and Reactive Streams -- Introduction -- Creating streams from different sources -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Reducing the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also. 
505 8 |a Collecting the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Applying an action to every element of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Filtering the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Transforming the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Sorting the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Verifying conditions in the elements of a stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Reactive programming with reactive streams -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 7: Concurrent Collections -- Introduction -- Using non-blocking thread-safe deques -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using blocking thread-safe deques -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using blocking thread-safe queue ordered by priority -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using thread-safe lists with delayed elements -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using thread-safe navigable maps -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using thread-safe HashMaps -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using atomic variables -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using atomic arrays -- Getting ready -- How to do it. 
505 8 |a How it works... -- There's more... -- See also -- Using the volatile keyword -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Using variable handles -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Chapter 8: Customizing Concurrency Classes -- Introduction -- Customizing the ThreadPoolExecutor class -- Getting ready -- How to do it... -- How it works... -- See also -- Implementing a priority-based Executor class -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Implementing the ThreadFactory interface to generate custom threads -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using our ThreadFactory in an Executor object -- Getting ready -- How to do it... -- How it works... -- See also -- Customizing tasks running in a scheduled thread pool -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Implementing the ThreadFactory interface to generate custom threads for the fork/join framework -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Customizing tasks running in the fork/join framework -- How to do it... -- How it works... -- See also -- Implementing a custom Lock class -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Implementing a transfer queue-based on priorities -- Getting ready -- How to do it... -- How it works... -- See also -- Implementing your own atomic object -- Getting ready -- How to do it... -- How it works... -- See also -- Implementing your own stream generator -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also -- Implementing your own asynchronous stream -- Getting ready -- How to do it... -- How it works... -- There's more... -- See also. 
520 |a Master the art of fast, effective Java development with the power of concurrent and parallel programming About This Book Get detailed coverage of important recipes on multi-threading and parallel programming This book takes a close look at the Java 9 APIs and their impact on concurrency See practical examples on thread safety, high-performance classes, safe sharing, and a whole lot more Who This Book Is For The book is for Java developers and programmers at an intermediate to advanced level. It will be especially useful for developers who want to take advantage of task-based recipes using Java 9's concurrent API to program thread-safe solutions. What You Will Learn Find out to manage the basic components of the Java Concurrency API Use synchronization mechanisms to avoid data race conditions and other problems of concurrent applications Separate the thread management from the rest of the application with the Executor framework Solve problems using a parallelized version of the divide and conquer paradigm with the Fork / Join framework Process massive data sets in an optimized way using streams and reactive streams See which data structures we can use in concurrent applications and how to use them Practice efficient techniques to test concurrent applications Get to know tips and tricks to design concurrent applications In Detail Writing concurrent and parallel programming applications is an integral skill for any Java programmer. Java 9 comes with a host of fantastic features, including significant performance improvements and new APIs. This book will take you through all the new APIs, showing you how to build parallel and multi-threaded applications. The book covers all the elements of the Java Concurrency API, with essential recipes that will help you take advantage of the exciting new capabilities. You will learn how to use parallel and reactive streams to process massive data sets. Next, you will move on to create streams and use all their intermediate and terminal operations to process big collections of data in a parallel and functional way. Further, you'll discover a whole range of recipes for almost everything, such as thread management, synchronization, executors, parallel and reactive streams, and many more. At the end of the book, you will learn how to obtain information about the status of some of the most useful components of the Java Concurrency API and how to test concurrent applications using different tools. Style and approach ... 
650 0 |a Java (Computer program language) 
650 7 |a Java (Computer program language)  |2 fast 
758 |i has work:  |a Java 9 Concurrency Cookbook (Text)  |1 https://id.oclc.org/worldcat/entity/E39PCYtHrbq7p8Q8hBMvMhBYPP  |4 https://id.oclc.org/worldcat/ontology/hasWork 
856 4 0 |u https://go.oreilly.com/UniOfColoradoBoulder/library/view/~/9781787124417/?ar  |z Full Text (via O'Reilly/Safari) 
915 |a - 
956 |a O'Reilly-Safari eBooks 
956 |b O'Reilly Online Learning: Academic/Public Library Edition 
994 |a 92  |b COD 
998 |b Subsequent record output 
999 f f |i 8bc55506-69b0-5327-8401-925828eb5394  |s c9a6d59b-6015-5cd8-83d9-bfd2d31ae0ee 
952 f f |p Can circulate  |a University of Colorado Boulder  |b Online  |c Online  |d Online  |e QA76.73.J38  |h Library of Congress classification  |i web  |n 1