Cargando…

Mastering Concurrency Programming with Java 9 - Second Edition.

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 r...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Gonzalez, Javier Fernandez
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, 2017.
Edición:2nd ed.
Temas:
Acceso en línea:Texto completo

MARC

LEADER 00000cam a2200000Mu 4500
001 EBSCO_ocn995761252
003 OCoLC
005 20231017213018.0
006 m o d
007 cr |n|---|||||
008 170729s2017 enk o 000 0 eng d
040 |a EBLCP  |b eng  |e pn  |c EBLCP  |d IDEBK  |d OCLCQ  |d MERUC  |d NLE  |d OCLCO  |d OCLCF  |d IDB  |d COO  |d OCLCQ  |d WYU  |d LVT  |d UKAHL  |d UKMGB  |d OCLCQ  |d N$T  |d OCLCQ  |d BTN  |d OCLCO  |d OCLCQ 
015 |a GBB798284  |2 bnb 
016 7 |a 018377744  |2 Uk 
019 |a 995604222  |a 1001350285  |a 1125073135  |a 1264945857 
020 |a 1785887459 
020 |a 9781785887451  |q (electronic bk.) 
029 1 |a CHNEW  |b 000966641 
029 1 |a CHVBK  |b 495244953 
029 1 |a UKMGB  |b 018377744 
029 1 |a AU@  |b 000067103701 
035 |a (OCoLC)995761252  |z (OCoLC)995604222  |z (OCoLC)1001350285  |z (OCoLC)1125073135  |z (OCoLC)1264945857 
037 |a 1023708  |b MIL 
050 4 |a T55.4-60.8 
082 0 4 |a 005.275 
049 |a UAMI 
100 1 |a Gonzalez, Javier Fernandez. 
245 1 0 |a Mastering Concurrency Programming with Java 9 - Second Edition. 
250 |a 2nd ed. 
260 |a Birmingham :  |b Packt Publishing,  |c 2017. 
300 |a 1 online resource (507 pages) 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
588 0 |a Print version record. 
505 0 |a 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. 
505 8 |a 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. 
505 8 |a 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. 
505 8 |a 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. 
505 8 |a 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. 
500 |a The log system. 
520 8 |a 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. 
590 |a eBooks on EBSCOhost  |b EBSCO eBook Subscription Academic Collection - Worldwide 
650 0 |a Java (Computer program language) 
650 0 |a Parallel programming (Computer science) 
650 6 |a Java (Langage de programmation) 
650 6 |a Programmation parallèle (Informatique) 
650 7 |a Java (Computer program language)  |2 fast  |0 (OCoLC)fst00982065 
650 7 |a Parallel programming (Computer science)  |2 fast  |0 (OCoLC)fst01052939 
776 0 8 |i Print version:  |a Gonzalez, Javier Fernandez.  |t Mastering Concurrency Programming with Java 9 - Second Edition.  |d Birmingham : Packt Publishing, ©2017 
856 4 0 |u https://ebsco.uam.elogim.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1560824  |z Texto completo 
938 |a Askews and Holts Library Services  |b ASKH  |n AH31705588 
938 |a EBL - Ebook Library  |b EBLB  |n EBL4919663 
938 |a EBSCOhost  |b EBSC  |n 1560824 
938 |a ProQuest MyiLibrary Digital eBook Collection  |b IDEB  |n cis36491691 
994 |a 92  |b IZTAP