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...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham :
Packt Publishing,
2017.
|
Ausgabe: | 2nd ed. |
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | 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. |
Beschreibung: | The log system. |
Beschreibung: | 1 online resource (507 pages) |
ISBN: | 1785887459 9781785887451 |
Internformat
MARC
LEADER | 00000cam a2200000 u 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-ocn995761252 | ||
003 | OCoLC | ||
005 | 20241004212047.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 |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.) | ||
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 | 7 | |a 005.275 | |
049 | |a MAIN | ||
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. | |
650 | 0 | |a Java (Computer program language) |0 http://id.loc.gov/authorities/subjects/sh95008574 | |
650 | 0 | |a Parallel programming (Computer science) |0 http://id.loc.gov/authorities/subjects/sh85097827 | |
650 | 6 | |a Java (Langage de programmation) | |
650 | 6 | |a Programmation parallèle (Informatique) | |
650 | 7 | |a Java (Computer program language) |2 fast | |
650 | 7 | |a Parallel programming (Computer science) |2 fast | |
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 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1560824 |3 Volltext |
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 | ||
936 | |a BATCHLOAD | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-ocn995761252 |
---|---|
_version_ | 1816882396634546176 |
adam_text | |
any_adam_object | |
author | Gonzalez, Javier Fernandez |
author_facet | Gonzalez, Javier Fernandez |
author_role | |
author_sort | Gonzalez, Javier Fernandez |
author_variant | j f g jf jfg |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | T - Technology |
callnumber-label | T55 |
callnumber-raw | T55.4-60.8 |
callnumber-search | T55.4-60.8 |
callnumber-sort | T 255.4 260.8 |
callnumber-subject | T - General Technology |
collection | ZDB-4-EBA |
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. |
ctrlnum | (OCoLC)995761252 |
dewey-full | 005.275 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.275 |
dewey-search | 005.275 |
dewey-sort | 15.275 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 2nd ed. |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>08090cam a2200589 u 4500</leader><controlfield tag="001">ZDB-4-EBA-ocn995761252</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr |n|---|||||</controlfield><controlfield tag="008">170729s2017 enk o 000 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">EBLCP</subfield><subfield code="b">eng</subfield><subfield code="e">pn</subfield><subfield code="c">EBLCP</subfield><subfield code="d">IDEBK</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">MERUC</subfield><subfield code="d">NLE</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCF</subfield><subfield code="d">IDB</subfield><subfield code="d">COO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">WYU</subfield><subfield code="d">LVT</subfield><subfield code="d">UKAHL</subfield><subfield code="d">UKMGB</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">N$T</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">BTN</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBB798284</subfield><subfield code="2">bnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">018377744</subfield><subfield code="2">Uk</subfield></datafield><datafield tag="019" ind1=" " ind2=" "><subfield code="a">995604222</subfield><subfield code="a">1001350285</subfield><subfield code="a">1125073135</subfield><subfield code="a">1264945857</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1785887459</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781785887451</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)995761252</subfield><subfield code="z">(OCoLC)995604222</subfield><subfield code="z">(OCoLC)1001350285</subfield><subfield code="z">(OCoLC)1125073135</subfield><subfield code="z">(OCoLC)1264945857</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">1023708</subfield><subfield code="b">MIL</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">T55.4-60.8</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.275</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Gonzalez, Javier Fernandez.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Mastering Concurrency Programming with Java 9 - Second Edition.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2nd ed.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Birmingham :</subfield><subfield code="b">Packt Publishing,</subfield><subfield code="c">2017.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (507 pages)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Print version record.</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">The log system.</subfield></datafield><datafield tag="520" ind1="8" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Java (Computer program language)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh95008574</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Parallel programming (Computer science)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh85097827</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Java (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Programmation parallèle (Informatique)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Java (Computer program language)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Parallel programming (Computer science)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Gonzalez, Javier Fernandez.</subfield><subfield code="t">Mastering Concurrency Programming with Java 9 - Second Edition.</subfield><subfield code="d">Birmingham : Packt Publishing, ©2017</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1560824</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">AH31705588</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBL - Ebook Library</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL4919663</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">1560824</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest MyiLibrary Digital eBook Collection</subfield><subfield code="b">IDEB</subfield><subfield code="n">cis36491691</subfield></datafield><datafield tag="936" ind1=" " ind2=" "><subfield code="a">BATCHLOAD</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
id | ZDB-4-EBA-ocn995761252 |
illustrated | Not Illustrated |
indexdate | 2024-11-27T13:27:57Z |
institution | BVB |
isbn | 1785887459 9781785887451 |
language | English |
oclc_num | 995761252 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource (507 pages) |
psigel | ZDB-4-EBA |
publishDate | 2017 |
publishDateSearch | 2017 |
publishDateSort | 2017 |
publisher | Packt Publishing, |
record_format | marc |
spelling | Gonzalez, Javier Fernandez. Mastering Concurrency Programming with Java 9 - Second Edition. 2nd ed. Birmingham : Packt Publishing, 2017. 1 online resource (507 pages) text txt rdacontent computer c rdamedia online resource cr rdacarrier Print version record. 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. The log system. 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. Java (Computer program language) http://id.loc.gov/authorities/subjects/sh95008574 Parallel programming (Computer science) http://id.loc.gov/authorities/subjects/sh85097827 Java (Langage de programmation) Programmation parallèle (Informatique) Java (Computer program language) fast Parallel programming (Computer science) fast Print version: Gonzalez, Javier Fernandez. Mastering Concurrency Programming with Java 9 - Second Edition. Birmingham : Packt Publishing, ©2017 FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1560824 Volltext |
spellingShingle | Gonzalez, Javier Fernandez Mastering Concurrency Programming with Java 9 - Second Edition. 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. Java (Computer program language) http://id.loc.gov/authorities/subjects/sh95008574 Parallel programming (Computer science) http://id.loc.gov/authorities/subjects/sh85097827 Java (Langage de programmation) Programmation parallèle (Informatique) Java (Computer program language) fast Parallel programming (Computer science) fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh95008574 http://id.loc.gov/authorities/subjects/sh85097827 |
title | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_auth | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_exact_search | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_full | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_fullStr | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_full_unstemmed | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_short | Mastering Concurrency Programming with Java 9 - Second Edition. |
title_sort | mastering concurrency programming with java 9 second edition |
topic | Java (Computer program language) http://id.loc.gov/authorities/subjects/sh95008574 Parallel programming (Computer science) http://id.loc.gov/authorities/subjects/sh85097827 Java (Langage de programmation) Programmation parallèle (Informatique) Java (Computer program language) fast Parallel programming (Computer science) fast |
topic_facet | Java (Computer program language) Parallel programming (Computer science) Java (Langage de programmation) Programmation parallèle (Informatique) |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1560824 |
work_keys_str_mv | AT gonzalezjavierfernandez masteringconcurrencyprogrammingwithjava9secondedition |