{"id":45294,"date":"2025-05-05T14:07:53","date_gmt":"2025-05-05T12:07:53","guid":{"rendered":"https:\/\/www.happycoders.eu\/java-concurrency-in-practice\/"},"modified":"2026-04-15T12:20:56","modified_gmt":"2026-04-15T10:20:56","slug":"java-concurrency-in-practice","status":"publish","type":"post","link":"https:\/\/www.happycoders.eu\/de\/buecher\/java-concurrency-in-practice\/","title":{"rendered":"Java Concurrency in Practice"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Java Concurrency in Practice<\/h1>\n\n\n\n<div class=\"wp-block-columns hc-books-v2 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n    <div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:730px\">\n        <p class=\"hc-book-author\">von Brian Goetz, Tim Peilers, Joshua Bloch, Joseph Bowbeer, Davod Holmes, Doug Lea<\/p>\n        \n        <p>Skalierbare Anwendungen zu schreiben, die die F\u00e4higkeiten der heutigen Multicore-CPUs nutzen und dabei zuverl\u00e4ssig und performant laufen, ist eine Herausforderung. Schnell schleichen sich Race Conditions, Deadlocks und andere Liveness-Fehler ein.<\/p>\n        <p>Brian Goetz und ein Team von Experten aus dem <a href=\"https:\/\/jcp.org\/en\/jsr\/detail?id=166\" target=\"_blank\" rel=\"noopener\">Java Specification Request 166 \"Concurrency Utilities\"<\/a> beschreiben in \u201cJava Concurrency in Practice\u201d grundlegende Konzepte der Threadsicherheit und die korrekte Implementierung threadsicherer Anwendungen in Java.<\/p>\n        <p>Das Buch ist in vier Teile gegliedert:<\/p>\n        <ol class=\"wp-block-list\">\n         <li>Im ersten Teil geht es um Grundlagen wie Atomarit\u00e4t und Sichtbarkeit, um intrinsische Locks (\u201csynchronized\u201d), sichere Ver\u00f6ffentlichung von Objekten, threadsichere Komposition und Concurrency-Bausteine wie Concurrent Collections und Synchronizer wie Semaphore, Latches und Barrieren.<\/li>\n         <li>Im zweiten Teil geht es um die Parallelisierung von Anwendungen mithilfe von Tasks und dem Executor Framework. Erkl\u00e4rt werden die Konfiguration von Thread Pools und das sichere Beenden von Tasks, Threads, Thread Pools und Anwendungen.<\/li>\n         <li>Im dritten Teil geht es um Liveness (Deadlocks, Livelocks, Thread Starvation), um Messung von Performance und deren Verbesserung durch Reduzierung von Lock Contention und um das Schreiben von Tests f\u00fcr nebenl\u00e4ufige Algorithmen.<\/li>\n         <li>Im vierten Teil geht es um fortgeschrittene Themen wie explizite Locks, Condition Queues (wait\/notify), atomare Variablen, nicht-blockierende Algorithmen und das Java Memory Model. Darauf aufbauend wird die Funktionsweise vieler im ersten Teil vorgestellter Themen, wie Objekt-Ver\u00f6ffentlichung, Concurrent Collections und Synchronizer-Klassen, erl\u00e4utert.<\/li>\n        <\/ol>\n        <p>Die Erkl\u00e4rungen werden von hervorragenden praxisnahen Beispielen begleitet. Die meisten zeigen zuerst h\u00e4ufig gemachte, aber falsche Implementierungen \u2013 gefolgt von den richtigen.<\/p>\n        <p>Den Autoren gelingt es ein \u00e4u\u00dferst komplexes Thema auf relativ einfache Weise zu erkl\u00e4ren. Besonders hervorzuheben ist die ausgezeichnete Erkl\u00e4rung des Java Memory Models und der \u201chappens-before\u201d-Beziehung.<\/p>\n        <p>Dennoch ist das Buch keine einfache Lekt\u00fcre, und es braucht Zeit, um alle Details zu verstehen. Ich empfehle das Buch mindestens zweimal zu lesen.<\/p>\n        <p>Auch wenn das Buch auf dem Stand von Java 6 ist, ist es nach wie vor aktuell. An den Grundlagen der Threadsicherheit hat sich seither nichts ge\u00e4ndert, und alle in sp\u00e4teren Java-Versionen hinzugekommenen Features (wie das Fork\/Join-Framework, CompletableFuture oder parallele Streams) basieren darauf.<\/p>\n        <p>\ud83c\udfa7 <em>Geeignet als H\u00f6rbuch? Nein, aufgrund zahlreicher umfangreicher Codebeispiele.<\/em><\/p>\n        <p><em>P.S.: Wer noch tiefer in die fortgeschrittene Thematik einsteigen m\u00f6chte, und z. B. \u00fcber spezifische Arten von Memory Fences und fortgeschrittene Speicherzugriffsmethoden wie Release\/Acquire und Opaque lesen m\u00f6chte, dem empfehle ich als Folgelekt\u00fcre <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/concurrent-programming-in-java\/\",>Doug Leas \u201cConcurrent Programming in Java\u201d<\/a>.<\/em><\/p>\n    <\/div>\n    \n\n    \n    <div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:400px\">\n        <figure class=\"wp-block-image size-half_400\"><a href=\"https:\/\/www.amazon.de\/gp\/product\/0321349601\/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;tag=happycoders07-21&amp;creative=6742&amp;linkCode=as2&amp;creativeASIN=0321349601&amp;linkId=b23bca6e5831a73ff1f40692202ff148\" target=\"_blank\" rel=\" noopener\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/java_concurrency_in_practice_brian_goetz.jpg\" alt=\"Java Concurrency in Practice - Brian Goetz, Tim Peilers, Joshua Bloch, Joseph Bowbeer, Davod Holmes, Doug Lea\" style=\"width:400px;height:529px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-button\"><a href=\"https:\/\/www.amazon.de\/gp\/product\/0321349601\/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;tag=happycoders07-21&amp;creative=6742&amp;linkCode=as2&amp;creativeASIN=0321349601&amp;linkId=b23bca6e5831a73ff1f40692202ff148\" target=\"_blank\" rel=\"noopener\">Buch bei Amazon kaufen *<\/a><\/p>\n        \n\n\n        \n        <h4 class=\"wp-block-heading hc-genres-heading\">Genres<\/h4>\n        \n\n        \n        <p class=\"hc-genres-links\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/java-programmierung\/\">Java-Programmierung<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/programmierung\/\">Programmierung<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/softwareentwicklung\/\">Softwareentwicklung<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/informatik\/\">Informatik<\/a> <a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/genres\/softwarearchitektur\/\">Softwarearchitektur<\/a> <\/p>\n        <\/div>\n    <\/div>\n\n\n\n<h2 class=\"wp-block-heading hc-book-other-books-heading\">Andere Empfehlungen aus den Genres dieses Buches<\/h2>\n\n\n\n<div class=\"wp-block-group hc-book-other-books has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effective-java\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/effective-java-deutsch-joshua-bloch-336x489.jpg\" alt=\"Effective Java: Best Practices f\u00fcr die Java-Plattform - Joshua Bloch\" style=\"width:192px;height:279px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effective-java\/\">Effective Java: Best Practices f\u00fcr die Java-Plattform<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Joshua Bloch<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/java-puzzlers\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/11\/java-puzzlers-joshua-bloch-neal-gafter-336x422.jpg\" alt=\"Java Puzzlers: Traps, Pitfalls, and Corner Cases - Joshua Bloch und Neal Gafter\" style=\"width:192px;height:240px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/java-puzzlers\/\">Java Puzzlers: Traps, Pitfalls, and Corner Cases<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Joshua Bloch und Neal Gafter<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/concurrent-programming-in-java\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2021\/09\/concurrent-programming-in-java-doug-lea-336x415.jpg\" alt=\"Concurrent Programming in Java: Design Principles and Pattern, 2nd Edition - Doug Lea\" style=\"width:192px;height:237px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/concurrent-programming-in-java\/\">Concurrent Programming in Java: Design Principles and Pattern, 2nd Edition<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Doug Lea<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/java-generics-and-collections\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2019\/10\/Java_Generics_and_Collections-336x433.jpg\" alt=\"Java Generics and Collections - Maurice Naftalin und Philip Wadler\" style=\"width:192px;height:247px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/java-generics-and-collections\/\">Java Generics and Collections<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Maurice Naftalin und Philip Wadler<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/core-java-fundamentals-volume-1\/\"><img decoding=\"async\" width=\"224\" height=\"293\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-224x293.jpg\" alt=\"Core Java: Fundamentals (Volume 1) - Cay S. Horstmann\" class=\"wp-image-41038\" srcset=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-224x293.jpg 224w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-336x439.jpg 336w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-504x659.jpg 504w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-672x879.jpg 672w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-400x523.jpg 400w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann-600x785.jpg 600w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-i-thirtheenth-cay-horstmann.jpg 800w\" sizes=\"(max-width: 224px) 100vw, 224px\" \/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/core-java-fundamentals-volume-1\/\">Core Java: Fundamentals (Volume 1)<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Cay S. Horstmann<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/core-java-advanced-features-volume-2\/\"><img decoding=\"async\" width=\"224\" height=\"292\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-224x292.jpg\" alt=\"Core Java: Advanced Features (Volume 2) - Cay S. Horstmann\" class=\"wp-image-41039\" srcset=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-224x292.jpg 224w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-336x438.jpg 336w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-504x658.jpg 504w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-672x877.jpg 672w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-400x522.jpg 400w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann-600x783.jpg 600w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/core-java-volume-ii-thirtheenth-cay-horstmann.jpg 800w\" sizes=\"(max-width: 224px) 100vw, 224px\" \/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/core-java-advanced-features-volume-2\/\">Core Java: Advanced Features (Volume 2)<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Cay S. Horstmann<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/mastering-lambdas\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2019\/06\/Mastering_Lambdas_Java_Programming_in_a_Multicore_World-336x416.jpg\" alt=\"Mastering Lambdas: Java Programming in a Multicore World - Maurice Naftalin\" style=\"width:192px;height:237px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/mastering-lambdas\/\">Mastering Lambdas: Java Programming in a Multicore World<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Maurice Naftalin<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/spring-boot-3\/\"><img decoding=\"async\" width=\"224\" height=\"326\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-224x326.jpg\" alt=\"Spring Boot 3: So geht moderne Java-Entwicklung \u2013 Konzepte und Anwendungen - Fran\u00e7ois Fernand\u00e8s, Tom Hombergs, Benedikt Jerat, Florian Pfleiderer\" class=\"wp-image-52977\" srcset=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-224x326.jpg 224w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-336x489.jpg 336w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-504x733.jpg 504w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-672x978.jpg 672w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-400x582.jpg 400w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer-600x873.jpg 600w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2025\/05\/spring-boot-3-fernandes-hombergs-jerat-pfleiderer.jpg 800w\" sizes=\"(max-width: 224px) 100vw, 224px\" \/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/spring-boot-3\/\">Spring Boot 3: So geht moderne Java-Entwicklung \u2013 Konzepte und Anwendungen<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Fran\u00e7ois Fernand\u00e8s, Tom Hombergs, Benedikt Jerat, Florian Pfleiderer<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/get-your-hands-dirty-on-clean-architecture\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/08\/get-your-hands-dirty-on-clean-architecture-336x414.jpg\" alt=\"Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java - Tom Hombergs\" style=\"width:192px;height:236px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/get-your-hands-dirty-on-clean-architecture\/\">Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Tom Hombergs<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/der-pragmatische-programmierer\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/der-pragmatische-programmierer-david-thomas-andrew-hunt-336x470.jpg\" alt=\"Der pragmatische Programmierer: Ihr Weg zur Meisterschaft - Andrew Hunt und David Thomas\" style=\"width:192px;height:268px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/der-pragmatische-programmierer\/\">Der pragmatische Programmierer: Ihr Weg zur Meisterschaft<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Andrew Hunt und David Thomas<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-code-refactoring-patterns-testen-und-techniken-fuer-sauberen-code\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/03\/clean-code-buch-336x473.jpg\" alt=\"Clean Code \u2013 Refactoring, Patterns, Testen und Techniken f\u00fcr sauberen Code - Robert C. Martin\" style=\"width:192px;height:270px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-code-refactoring-patterns-testen-und-techniken-fuer-sauberen-code\/\">Clean Code \u2013 Refactoring, Patterns, Testen und Techniken f\u00fcr sauberen Code<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Robert C. Martin<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/refactoring\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/06\/Refactoring-Buch-Martin-Fowler-336x475.jpg\" alt=\"Refactoring: Wie Sie das Design bestehender Software verbessern - Martin Fowler\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/refactoring\/\">Refactoring: Wie Sie das Design bestehender Software verbessern<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Martin Fowler<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-craftsmanship\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/05\/Clean-Craftsmanship-deutsch-Robert-Martin-Uncle-Bob-336x475.jpg\" alt=\"Clean Craftsmanship: Best Practices, Standards und Ethik f\u00fcr die Softwareentwicklung - Robert C. Martin\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/clean-craftsmanship\/\">Clean Craftsmanship: Best Practices, Standards und Ethik f\u00fcr die Softwareentwicklung<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Robert C. Martin<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/the-programmer-s-brain\/\"><img decoding=\"async\" width=\"224\" height=\"281\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-224x281.jpg\" alt=\"The Programmer\u2019s Brain: What Every Programmer Needs to Know About Cognition - Felienne Hermans\" class=\"wp-image-41084\" srcset=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-224x281.jpg 224w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-336x421.jpg 336w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-504x631.jpg 504w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-672x842.jpg 672w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-400x501.jpg 400w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans-600x752.jpg 600w, https:\/\/www.happycoders.eu\/wp-content\/uploads\/2023\/05\/the-programmers-brain-felienne-hermans.jpg 800w\" sizes=\"(max-width: 224px) 100vw, 224px\" \/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/the-programmer-s-brain\/\">The Programmer\u2019s Brain: What Every Programmer Needs to Know About Cognition<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Felienne Hermans<\/p>\n        <\/div><\/div>\n    \n    \n    <div class=\"wp-block-group hc-book-other-book has-global-padding\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n        <figure class=\"wp-block-image size-feature_thumb_224\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effektives-arbeiten-mit-legacy-code-refactoring-und-testen-bestehender-software\/\"><img decoding=\"async\" src=\"https:\/\/www.happycoders.eu\/wp-content\/uploads\/2022\/02\/effektives-arbeiten-mit-legacy-code-michael-feathers-336x475.jpg\" alt=\"Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software - Michael C. Feathers\" style=\"width:192px;height:271px\"\/><\/a><\/figure>\n        \n\n        \n        <p class=\"hc-book-title\"><a href=\"https:\/\/www.happycoders.eu\/de\/buecher\/effektives-arbeiten-mit-legacy-code-refactoring-und-testen-bestehender-software\/\">Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software<\/a><\/p>\n        \n\n        \n        <p class=\"hc-book-author\">Michael C. Feathers<\/p>\n        <\/div><\/div>\n    \n<\/div><\/div>\n\n\n\n<p class=\"hc-book-disclosure\"><em>* Hinweis: Wir teilen gerne unsere Lieblingsb\u00fccher mit dir! Als Amazon-Partner verdienen wir eine kleine Provision bei Eink\u00e4ufen, die du \u00fcber unsere Links t\u00e4tigst. Dies hilft uns, weiterhin Inhalte zu erstellen, die dir gefallen.<\/em><\/p>\n<aside><h4 style=\"margin-top:60px\">Verpasse keine Buchempfehlungen und Profi-Tipps zu Java!<\/h4>\r\n                       <p>M\u00f6chtest du benachrichtigt werden, wenn ich neue Buchempfehlungen ver\u00f6ffentliche? Dann <a href=\"#\" data-formkit-toggle=\"d8ee997126\">klicke hier<\/a>, um dich f\u00fcr den HappyCoders-Newsletter anzumelden und erhalte meine Buchempfehlungen neben regelm\u00e4\u00dfigen Tipps zu Java-Programmierung, Algorithmen und Datenstrukturen.<\/p>\r\n                       <p>\ud83d\udc49 <a href=\"#\" data-formkit-toggle=\"d8ee997126\">Newsletter-Anmeldung<\/a><\/p><\/aside>","protected":false},"excerpt":{"rendered":"<p>Entdecke mit \"Java Concurrency in Practice\", wie Du threadsichere Java-Anwendungen entwickelst. Praxisnahe Beispiele und klare Erkl\u00e4rungen zu Nebenl\u00e4ufigkeit.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_uag_custom_page_level_css":"","_metis_text_type":"standard","_metis_text_length":4672,"_post_count":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-45294","post","type-post","status-publish","format-standard","hentry","category-buecher"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"feature_thumb_224":false,"feature_thumb_336":false,"feature_thumb_504":false,"feature_thumb_672":false,"half_400":false,"half_600":false,"full_800":false,"full_944":false,"full_1200":false,"wide_1180":false,"wide_1770":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sven Woltmann","author_link":"https:\/\/www.happycoders.eu\/de\/author\/sven\/"},"uagb_comment_info":0,"uagb_excerpt":"Entdecke mit \"Java Concurrency in Practice\", wie Du threadsichere Java-Anwendungen entwickelst. Praxisnahe Beispiele und klare Erkl\u00e4rungen zu Nebenl\u00e4ufigkeit.","public_identification_id":"89b7c9b41349462aa4321ca51605e112","private_identification_id":"bac6d6b074264989b538c09ff6124d4f","_links":{"self":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/comments?post=45294"}],"version-history":[{"count":12,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45294\/revisions"}],"predecessor-version":[{"id":56021,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/posts\/45294\/revisions\/56021"}],"wp:attachment":[{"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/media?parent=45294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/categories?post=45294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.happycoders.eu\/de\/wp-json\/wp\/v2\/tags?post=45294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}