Java 7: Fork-Join-Framework und Phaser
Von Angelika Langer und Klaus Kreft
()
Über dieses E-Book
Mehr von Angelika Langer lesen
Ähnlich wie Java 7
Titel in dieser Serie (100)
Zend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5HTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Spock, Geb und Selenium: Testframeworks unter die Lupe genommen Bewertung: 0 von 5 Sternen0 BewertungenNebenläufigkeit in Java und C++ Bewertung: 0 von 5 Sternen0 BewertungenDas Java Memory Model: Überblick und Ausblick auf Java 9 Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenSpring Boot und Spring Cloud Bewertung: 5 von 5 Sternen5/5JPA 2.1: Persistence-Features in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenDynamic Proxies: Effizient programmieren Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenJava FX - Status Quo: Status Quo Bewertung: 0 von 5 Sternen0 BewertungenMemory Leaks in Java Bewertung: 0 von 5 Sternen0 BewertungenEclipse meets Java FX Bewertung: 0 von 5 Sternen0 BewertungenCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenJava 9 Streams Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 BewertungenJava 9: Einführung in das Modulsystem und die Migration Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Datenverarbeitung basierend auf MOM und SQL Bewertung: 0 von 5 Sternen0 BewertungenOpenLaszlo: schnell + kompakt Bewertung: 0 von 5 Sternen0 BewertungenApache Tamaya: Einstieg in die Konfiguration in Java Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Project Coin, Generics und NIO2 Bewertung: 0 von 5 Sternen0 BewertungenJava EE 6: Enterprise-Anwendungsentwicklung leicht gemacht Bewertung: 0 von 5 Sternen0 BewertungenDas Vulkan-API: Teil 2: Wie man ein Framework erstellt und Shader programmiert Bewertung: 0 von 5 Sternen0 BewertungenPolyglottes Programmieren in Java Core Bewertung: 0 von 5 Sternen0 BewertungenModerne Webanwendungen mit AngularJS Bewertung: 0 von 5 Sternen0 BewertungenSprachenkompendium: Vala, Go und Rust Bewertung: 0 von 5 Sternen0 BewertungenApache Kafka Bewertung: 0 von 5 Sternen0 BewertungenArchitekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Bewertung: 0 von 5 Sternen0 BewertungenJavaScript und TypeScript für C#-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenForms over Data mit Knockout.js: Die freie MVVM-JavaScript-Bibliothek im Praxiseinsatz Bewertung: 0 von 5 Sternen0 BewertungenSharePoint Kompendium - Bd. 16 Bewertung: 0 von 5 Sternen0 BewertungenJavaFX Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5Bash kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5C++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Java 7
0 Bewertungen0 Rezensionen
Buchvorschau
Java 7 - Angelika Langer
Angelika Langer, Klaus Kreft
Java 7
Fork-Join-Framework und Phaser
ISBN: 978-3-86802-427-2
© 2012 entwickler.press
Ein Imprint der Software & Support Media GmbH
1 JSR 166y – Fork-Join-Framework
Das Fork-Join-Framework ist Teil des JSR 166y. Entwickelt und zur Verfügung gestellt werden die Abstraktionen des JSR 166 traditionell von Doug Lea [1]. Der Original-JSR-166 ging in Java 5 ein, erste Ergänzungen als JSR 166x folgten in Java 6. In Java 7 sind nun weitere Ergänzungen als 166y gekommen.
Wir wollen uns in diesem ersten Kapitel das Design des Fork-Join-Framework zusammen mit einigen Implementierungsdetails genauer ansehen. Im nächsten Kapitel diskutieren wir ausgehend von einem Benutzungsbeispiel, welche Rolle das Fork-Join-Framework für einige Erweiterungen in Java 8 spielen wird und wie sich damit die Benutzung von Arrays und Collections in Java zukünftig verändern wird. Doch bevor wir mit dem Fork-Join-Framework beginnen, sollten wir zur Abgrenzung einen kurzen Blick auf den ThreadPoolExecutor werfen.
Der ThreadPoolExecutor
Der ThreadPoolExecutor ist der Standard-Thread-Pool, der in Java im Rahmen des JDK zur Verfügung steht. Er war Teil des JSR 166 und ist dementsprechend mit Java 5 Bestandteil des JDK geworden. Wir haben ihm damals einen ausführlichen Artikel gewidmet [2]. Für die Diskussion ist wichtig, dass alle Tasks, die man zur Ausführung an den Thread-Pool übergibt, voneinander unabhängig sein müssen. Sie dürfen zum Beispiel nicht im Ergebnis voneinander abhängig sein, in einer festgelegten Reihenfolge abgearbeitet werden müssen oder anderweitig miteinander korrelieren. Es ist nicht immer ganz einfach, hier die potenziellen Korrelationen zu erkennen. Wenn man zum Beispiel in einem Eventserver das Senden der Events an die Clients über einen ThreadPoolExecutor abwickelt, so scheint dieser Ansatz erst einmal unproblematisch zu sein – das ist er aber leider möglicherweise nicht. Das Problem ist, dass die Reihenfolge der Events für einen Client unter Umständen nicht eingehalten werden kann. D. h. es kann vorkommen, dass die Reihenfolge, in der die Events an einen Client versandt werden, nicht mehr der Reihenfolge entspricht, in der sie an den ThreadPoolExecutor übergeben wurden.
Wir haben also übersehen, dass die Reihenfolge der Events für einen Client eine Abhängigkeit darstellt, die der ThreadPoolExecutor nicht einhalten kann. Konkret kann dieses Reihenfolge-Problem zum Beispiel dadurch entstehen, dass zwei Events für den gleichen Client direkt hintereinander an den ThreadPoolExecutor übergeben werden. Jedem Event wird gleich ein Pool-Thread zugeordnet. Aufgrund des aktuellen Thread Schedulings wird aber der Thread für das erste Event angehalten, und dem Thread für das zweite Event wird die CPU zugeordnet. So wird dann das zweite Event vor dem ersten an den Client zugestellt. Lösen kann man das Problem dadurch, dass man nur jeweils ein Event pro Client