Download E-books Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors PDF

Posted On February 3, 2017 at 12:20 am by / Comments Off on Download E-books Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors PDF

By Venkat Subramaniam

More than ever, studying to software concurrency is necessary to making swifter, responsive purposes. fast and cheap multicore is using the call for for high-performing functions, and you may leverage the Java platform to carry those purposes to life.

Concurrency at the Java platform has developed, from the synchronization version of JDK to software program transactional reminiscence (STM) and actor-based concurrency. This publication is the 1st to teach you these kinds of concurrency types so that you can evaluate and select what works most sensible in your purposes. You'll study the advantages of every one of those types, while and the way to take advantage of them, and what their obstacles are.

via hands-on routines, you'll find out how to keep away from shared mutable kingdom and the best way to write reliable, based, specific synchronization-free courses so that you can create effortless and secure concurrent purposes. The ideas you study during this publication will take you from dreading concurrency to gaining knowledge of and having fun with it. better of all, you could paintings with Java or a JVM language of your selection - Clojure, JRuby, Groovy, or Scala - to harvest the transforming into energy of multicore hardware.

while you are a Java programmer, you'd want JDK 1.5 or later and the Akka 1.0 library. additionally, in case you application in Scala, Clojure, Groovy or JRuby you'd desire the most recent model of your selected language. Groovy programmers also will want GPars.

Show description

Read Online or Download Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors PDF

Similar Java books

Mastering JavaFX 8 Controls (Oracle Press)

Layout and installation High-Performance JavaFX Controls carry cutting-edge functions with visually attractive UIs. getting to know JavaFX eight Controls offers transparent directions, distinct examples, and ready-to-use code samples. the way to paintings with the most recent JavaFX APIs, configure UI elements, instantly generate FXML, construct state of the art controls, and successfully follow CSS styling.

Java EE 7: The Big Picture (1st Edition)

The Definitive advisor to Java Platform, firm version 7
Java EE 7: the massive photograph uniquely explores the total Java EE 7 platform in an all-encompassing sort whereas studying each one tier of the platform in adequate aspect that you can opt for the ideal applied sciences for particular venture wishes. during this authoritative consultant, Java professional Danny Coward walks you thru the code, functions, and frameworks that energy the platform. Take complete good thing about the powerful services of Java EE 7, bring up your productiveness, and meet company calls for with aid from this Oracle Press resource.
Explore the positive factors of the Java servlet version and Java servlet API
Create dynamic websites with JavaServer Pages and JavaServer Faces
Build web pages for nonbrowser consumers with JAX-RS
Push facts to internet consumers utilizing Java WebSockets
Secure internet applications
Work with internet part APIs
Maximize firm beans for multithreading, asynchronous tactics, transactions, and more
Access relational databases with the Java Database Connectivity APIs and the Java patience API
Understand the packaging and deployment mechanisms of Java EE applications
Work with Java EE Contexts and Dependency Injection
Secure firm beans in a Java EE application
Enable parallel processing with Java EE concurrency APIs

Introducing JavaFX 8 Programming (Oracle Press)

Research the basics of JavaFX eight from Programming Guru Herb Schildt Introducing JavaFX eight Programming presents a fast moving, sensible creation to JavaFX, Java’s next-generation GUI programming framework. during this easy-to-read advisor, best-selling writer Herb Schildt offers the foremost themes and ideas you’ll have to commence constructing smooth, dynamic JavaFX GUI purposes.

Data Abstraction and Problem Solving with Java: Walls and Mirrors (3rd Edition)

The 3rd variation of facts Abstraction and challenge fixing with Java: partitions and Mirrors employs the analogies of partitions (data abstraction) and Mirrors (recursion) to coach Java programming layout recommendations, in a manner that starting scholars locate available. The ebook has a student-friendly pedagogical technique that conscientiously money owed for the strengths and weaknesses of the Java language.

Extra resources for Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors

Show sample text content

Add(primeFinder. sendRequestReplyFuture(bounds)); } int count number = zero; for(Future end result : effects) count number += (Integer)(result. await(). result(). get()); Actors. registry(). shutdownAll(); go back count number; } when we decided the boundaries for every half, we wrapped that into an unmodifiable collection—remember, messages need to be immutable. We then name sendRequestReplyFuture() so that it will ship requests to all of the walls with out being blocked. We shop away destiny (here it’s akka. dispatch. destiny and never the JDK’s java. util. concurrent. destiny) back via this technique with a purpose to question later for the variety of primes caused by each one half. We name await() on destiny and invoke the result() technique at the destiny example back via await(). this offers us an example of Scala Option—think of this as a posh union that holds the price if on hand. We get the Integer worth from that item ultimately by means of calling the get() technique. okay, let’s force the code utilizing the command-line parameters for the quantity and elements: obtain favoringIsolatedMutability/java/primes/Primes. java public static void main(final String[] args) { if (args. size < 2) method. out. println("Usage: quantity numberOfParts"); else { ultimate lengthy begin = method. nanoTime(); ultimate int count number = countPrimes( Integer. parseInt(args[0]), Integer. parseInt(args[1])); obtain from Wow! book document erratum • speak about 180 • bankruptcy eight. Favoring remoted Mutability ultimate lengthy finish = approach. nanoTime(); procedure. out. println("Number of primes is " + count); approach. out. println("Time taken " + (end - start)/1. 0e9); } } } The main() approach workouts the code and instances it. Our final step is to jot down the PrimeFinder that would do the particular paintings of computing the primes in a spread: obtain favoringIsolatedMutability/java/primes/PrimeFinder. java public category PrimeFinder { public static boolean isPrime(final int quantity) { if (number <= 1) go back fake; ultimate int restrict = (int) Math. sqrt(number); for(int i = 2; i <= restrict; i++) if(number % i == zero) go back fake; go back precise; } public static int countPrimesInRange(final int decrease, ultimate int top) { int count number = zero; for(int index = reduce; index <= top; index++) if(isPrime(index)) count number += 1; go back count number; } } Let’s cross forward and workout the instance code with a multitude like 10 million and a hundred elements: variety of primes is 664579 Time taken three. 890996 Let’s evaluate the code and output during this part with the code and output in Concurrent Computation of top Numbers, on web page 27. In either types we set the variety of walls to a hundred. there is not any pool measurement to set within the Akka model of primes counting. it is a computation-intensive challenge, and surroundings the pool measurement for the ExecutorService model above the variety of cores made little distinction. So, they’re really shut in functionality, and there's somewhat much less rite within the Akka model than in ExecutorService. This distinction turns into extra renowned once we want extra coordination among the threads/actors, as we development extra during this bankruptcy.

Rated 4.34 of 5 – based on 7 votes