Kurs i

Concurrent applications with Groovy-GPars

När även enklare laptops har stöd för att exekvera flera parallella kodsekvenser, varför fortsätter vi då att skriva kod anpassad för enkeltrådad exekvering?

Den här kursen bygger på dina kunskaper i Groovy programmering och ger dig en solid bas för att designa applikationer vilka tar vara på multi-core och hyperthreading baserade moderna datorer.

Kursen bygger på Groovy GPars (Groovy Parallel Systems), som är ett open-source bibliotek implementerat i Java med ett lager av Groovy ovanpå.

Detta får du lära dig på kursen
  • Designa fler-trådade applikationer som tar vara på multi-core exekvering
  • Hantera asynkrona uppgifter och future synkronisering
  • Designa parallel exekvering via fork-join
  • Designa parallel exekvering via map-reduce
  • Bygga nätverk av kommunicerade actor objekt
  • Hantera gemensamt ägt modifierbart tillstånd via agent objekt
Innehåll

Overview of Concurrency Topics

  • Concurrent vs. Parallel
  • Levels of concurrency
  • Scheduling
  • Speed-up
  • Thread-based vs. event-driven computation
  • The problem of shared mutable state
  • Synchronization
  • Classical concurrency problems

Threads

  • What is thread-based concurrency?
  • Java threads
  • Groovy threads

Asynchronous Tasks

  • What is task-based concurrency
  • Java thread-pools and the Executors framework
  • Synchronization via Future objects
  • GPars thread-pools
  • Spawning asynchronuos tasks

Fork-Join

  • What is fork-join concurrency?
  • Java fork-join
  • GPars fork-join
  • Parallel processing of (large) collections

Map-Reduce

  • What is map-reduce concurrency?
  • Java8 data-streams
  • Parallel arrays
  • Using filter()
  • Using map()
  • Using reduce()
  • Using combine()
  • Getting a result
  • Sorting
  • Other aggregators such as size, sum, min, max, groupBy

Actors

  • What is actors concurrency?
  • Actors vs. threads
  • Understanding message-passing
  • Blocking vs. non-blocking message-passing
  • Stateless vs. stateful actors
  • Understanding the continuation style wring code
  • Creating an actor based on a clousre/lambda
  • Creating an actor as a subclass
  • Receiving messages
  • Sending messages
  • Handling time-outs
  • Sending replies
  • Joining actors

Agents

  • What is agents concurrency?
  • Understanding shared mutable state and why it might be needed
  • Agents vs. actors
  • Different ways of creating agents and encapsulate mutable state
  • Sending actions to agents
  • Reading agent values
  • Listeners
  • Validators

DataFlow

  • What is dataflow concurrency?
  • Dataflow variables and operators

GPars Remoting

  • What is remoting?
  • Common concepts
  • Remote actors
  • Remote agents
SnabbFakta
Namn
Concurrent applications with Groovy-GPars
Längd
1 dagar
Nivå
Advanced
Målgrupp
Groovy programmerare
Förkunskaper
Praktiska kunskaper i Groovy
Teknisk miljö
  • Groovy, senaste versionen
  • JetBrains Intellij IDEA
  • Java JDK, version 7 eller 8
  • Windows
Relaterade Kurser
KursLängdNivå
Groovy Basics2 dagarBeginner
Spock Tests1 dagar Intermediate
Grails for Web Apps 3 dagarBeginner
Schemalagd Kurs

Pris

10000 kr + moms

Vi ger 20% rabatt för tillkommande deltagare från samma företag på samma kurstillfälle. Läs mer om vår samma-företags-rabatt.

Aktuella KursDatum
Startdatum Plats
30 jun 2017 Stockholm City
Företagsintern Kurs

Om du beställer en företagsintern kurs kommer vi till er och håller kursen i era egna lokaler. Priset bestäms av vår prismodell och baseras på antalet kursdagar, antalet deltagare, samt i förekommande fall resa och logi.

Prisexempel för NN deltagare

PPP kr + moms

Antal
Område

Läs mer om vår prismodell och beställningsvillkor.