SlideShare ist ein Scribd-Unternehmen logo
1 von 149
Back to the
CompletableFuture
Dmitry Vinnik
@DmitryVinnik dvinnik.com
What are our goals?
@DmitryVinnik dvinnik.com
Goals
Concurrency and Its Forms
Misconceptions of Concurrency
Workflows: How’s and Why’s
Why Concurrency?
@DmitryVinnik dvinnik.com
Multi-Core
Motivation
Microservices
CCSs
@DmitryVinnik dvinnik.com
Conclusion?
@DmitryVinnik dvinnik.com
Concurrency is
a New Reality
@DmitryVinnik dvinnik.com
Concurrency is
a Reality
@DmitryVinnik dvinnik.com
But!
@DmitryVinnik dvinnik.com
What’s in it for us?
@DmitryVinnik dvinnik.com
Benefits
No Idling ↑ UX
Abstraction
@DmitryVinnik dvinnik.com
Only good parts, right?
@DmitryVinnik dvinnik.com
Complexities
Thread
Safety
Performanc
e
Liveness
SDLC
@DmitryVinnik dvinnik.com
Complex
@DmitryVinnik dvinnik.com
But
@DmitryVinnik dvinnik.com
Beneficial
@DmitryVinnik dvinnik.com
Beautiful
@DmitryVinnik dvinnik.com
Remind anything?
@DmitryVinnik dvinnik.com
Concurrency
@DmitryVinnik dvinnik.com
is like
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Concurrency & Sharks
@DmitryVinnik dvinnik.com
Concurrency & Sharks
@DmitryVinnik dvinnik.com
Fear
@DmitryVinnik dvinnik.com
Fear Admiration
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Agenda
Single
Threading
Multi
Threading
Workflows
Single
Threading
Multi
Threading
Workflows
Concurrency
in Java
Concurrency
in Java
Do I even care?
@DmitryVinnik dvinnik.com
“My app is single threaded”
@DmitryVinnik dvinnik.com
“It is too complicated”
@DmitryVinnik dvinnik.com
“Not broken, don't touch it”
@DmitryVinnik dvinnik.com
Design For Concurrency
Programming
by Coincidence
Design by
Contract
Temporal
Coupling
Immutability
&
Atomicity
@DmitryVinnik dvinnik.com
Programming by
Coincidence
@DmitryVinnik dvinnik.com
“Can't tell if it is broken, or
if it never worked”
Programming by Coincidence
@DmitryVinnik dvinnik.com
Programming by Coincidence
@DmitryVinnik dvinnik.com
Design by Contract
@DmitryVinnik dvinnik.com
“Require No More,
Promise No Less”
Design by Contract
Quote from Bertrand Meyer,
“Design by Contract”
@DmitryVinnik dvinnik.com
Design by Contract
@DmitryVinnik dvinnik.com
Temporal Coupling
@DmitryVinnik dvinnik.com
“Do time & order matter?”
Temporal Coupling
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Temporal Coupling
Agenda
Single
Threading
Multi
Threading
Workflows
Single
Threading
Multi
Threading
Workflows
Concurrency
in Java
Concurrency
in Java
Single
Threading
Multi
Threading
Multithreading
@DmitryVinnik dvinnik.com
What forms can it take?
@DmitryVinnik dvinnik.com
Multithreading Forms
Concurrent Form
Parallel Form
Asynchronous Form
Concurrent Form
Parallel Form
Asynchronous Form
@DmitryVinnik dvinnik.com
Form: Concurrency
@DmitryVinnik dvinnik.com
Form: Concurrency
Multiple
Tasks
Logically
Simultaneous
Multiple CPUs
Too Abstract?
@DmitryVinnik dvinnik.com
Let’s Code Something
@DmitryVinnik dvinnik.com
Goal: Develop App
@DmitryVinnik dvinnik.com
Form: Concurrency
What do we need?
@DmitryVinnik dvinnik.com
Form: Concurrency
Coffee, Code, Coffee, Code, Coffee, Code...
T1
@DmitryVinnik dvinnik.com
Form: Concurrency
Multithreading Forms
Concurrent Form
Parallel Form
Asynchronous Form
Concurrent Form
Parallel Form
Asynchronous Form
@DmitryVinnik dvinnik.com
Concurrent Form
Parallel Form
Form: Parallelism
dvinnik.com
Form: Parallelism
Multiple
(Sub)Tasks
Physically
Simultaneous
Multiple CPUs
Goal: Develop App
@DmitryVinnik dvinnik.com
Form: Parallelism
But now
@DmitryVinnik dvinnik.com
Form: Parallelism
As Ambidexter
@DmitryVinnik dvinnik.com
Form: Parallelism
T1
T2
@DmitryVinnik dvinnik.com
Form: Parallelism
Multithreading Forms
Concurrent Form
Parallel Form
Asynchronous Form
Concurrent Form
Parallel Form
Asynchronous Form
@DmitryVinnik dvinnik.com
Concurrent Form
Parallel FormParallel Form
Asynchronous Form
Form: Asynchrony
dvinnik.com
Fire & Forget
Non-Blocking
Multiple CPUs
@DmitryVinnik dvinnik.com
Form: Parallelism
Goal: Develop App
@DmitryVinnik dvinnik.com
Form: Asynchrony
Question
@DmitryVinnik dvinnik.com
Form: Asynchrony
Where does coffee
come from?
@DmitryVinnik dvinnik.com
Form: Asynchrony
Coffee Machine
@DmitryVinnik dvinnik.com
Form: Asynchrony
T1
aT1
@DmitryVinnik dvinnik.com
Form: Asynchrony
Agenda
Single
Threading
Multi
Threading
Workflows
Single
Threading
Multi
Threading
Workflows
Concurrency
in Java
Concurrency
in Java
Single
Threading
Multi
Threading
Multi
Threading
Concurrency
in Java
First...
@DmitryVinnik dvinnik.com
There were
Runnable & Thread
@DmitryVinnik dvinnik.com
Runnable
@DmitryVinnik dvinnik.com
No Input
Runnable
No Output
No Exception
@DmitryVinnik dvinnik.com
Runnable
Based
Thread
Min. 1 Main
Thread
Creation
Overhead
Then JDK5 was released
@DmitryVinnik dvinnik.com
Welcome
Concurrency API
@DmitryVinnik dvinnik.com
Concurrency API
ThreadLocal
Atomic
Operations
Thread Safe
Collections
And More
@DmitryVinnik dvinnik.com
Concurrency API
ThreadLocal
Atomic
Operations
Thread Safe
Collections
@DmitryVinnik dvinnik.com
ThreadLocal
Atomic
Operations
Thread Safe
Collections
ThreadLocal
@DmitryVinnik dvinnik.com
ThreadLocal
Resource
Confinement
Memory Leaks
Global Fields
Concurrency API
ThreadLocal
Atomic
Operations
Thread Safe
Collections
@DmitryVinnik dvinnik.com
ThreadLocal
Atomic
Operations
Thread Safe
Collections
ThreadLocal
Atomic
Operations
Atomic Operations
@DmitryVinnik dvinnik.com
Atomic Operations
Compound
Operations
↑ Speed
Compare
& Swap
Concurrency API
ThreadLocal
Atomic
Operations
Thread Safe
Collections
@DmitryVinnik dvinnik.com
ThreadLocal
Atomic
Operations
Thread Safe
Collections
ThreadLocal
Atomic
Operations
Atomic
Operations
Thread Safe
Collections
Thread Safe
Collections
Thread Safe Collections
@DmitryVinnik dvinnik.com
ConcurrentHashMap
Thread Safe Collections
Compound
Operations
↑ Speed
Configurable
Concurrency
Agenda
Single
Threading
Multi
Threading
Workflows
Single
Threading
Multi
Threading
Workflows
Concurrency
in Java
Concurrency
in Java
Single
Threading
Multi
Threading
Multi
Threading
Concurrency
in Java
Concurrency
in Java
Workflows
Where do we start?
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
Workflows
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
@DmitryVinnik dvinnik.com
Callback Hell
in JavaScript
@DmitryVinnik dvinnik.com
Callback Hell in JavaScript
Verbose
Intuitive
@DmitryVinnik dvinnik.com
How do we fix this?
@DmitryVinnik dvinnik.com
Promises in JavaScript
@DmitryVinnik dvinnik.com
Promises in JavaScript
Before After
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
Workflows
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Runnable -> Thread
@DmitryVinnik dvinnik.com
Callable -> Future
@DmitryVinnik dvinnik.com
Callable
@DmitryVinnik dvinnik.com
No Input
Callable
Has Output
Has Exception
Future
@DmitryVinnik dvinnik.com
Completed in
the Future
Future
Executor
Framework
@DmitryVinnik dvinnik.com
Future sounds great!
@DmitryVinnik dvinnik.com
But how do we use it?
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
Workflows
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Future/
Callable
Executor
Framework
Executor Framework
@DmitryVinnik dvinnik.com
Executor Framework
Thread
Management
Declarative
Model
@DmitryVinnik dvinnik.com
Thread Pool
@DmitryVinnik dvinnik.com
Thread Pool
Thread
Management
Thread
Configuration
@DmitryVinnik dvinnik.com
Too many arguments...
@DmitryVinnik dvinnik.com
Factories to the rescue!
@DmitryVinnik dvinnik.com
Executor Factories
@DmitryVinnik dvinnik.com
Executor Factories
Single
Thread Pool
Cached
Thread Pool
Fixed
Thread Pool
Scheduled
Thread Pool
Work Stealing
Pool@DmitryVinnik dvinnik.com
Executor + Thread Pools
@DmitryVinnik dvinnik.com
ExecutorService
@DmitryVinnik dvinnik.com
ExecutorService
Async
Tasks
Thread
Pools
@DmitryVinnik dvinnik.com
Are we done?
@DmitryVinnik dvinnik.com
Future is not perfect!
@DmitryVinnik dvinnik.com
Not really...
@DmitryVinnik dvinnik.com
Future Pitfalls
Blocking
Operations
No Result
Chaining
Future
Combination
Exception
Handling
@DmitryVinnik dvinnik.com
Blocking Result Retrieval
@DmitryVinnik dvinnik.com
Blocking Result Retrieval
Blocking Get
Use Timeout
@DmitryVinnik dvinnik.com
No Futures Chaining
@DmitryVinnik dvinnik.com
Futures Chaining
No Workflows
Callback Hell
@DmitryVinnik dvinnik.com
Futures Combination
@DmitryVinnik dvinnik.com
Futures Combination
Blocking
InvokeAny
Blocking
InvokeAll()
@DmitryVinnik dvinnik.com
Exception Handling
@DmitryVinnik dvinnik.com
Exception Handling
Multiple
Exceptions
On Most
Operations
@DmitryVinnik dvinnik.com
So many issues...
@DmitryVinnik dvinnik.com
No worries!
@DmitryVinnik dvinnik.com
CompletableFuture
is here to help
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
Workflows
Promises in
JavaScript
Future/
Callable
Executor
Framework
Completable
Future
@DmitryVinnik dvinnik.com
Promises in
JavaScript
Future/
Callable
Future/
Callable
Executor
Framework
Executor
Framework
Completable
Future
CompletableFuture
@DmitryVinnik dvinnik.com
CompletableFuture
Transformation
Composition
Chaining
Combination
Future Pitfalls
Blocking
Operations
No Result
Chaining
Future
Combination
Exception
Handling
@DmitryVinnik dvinnik.com
Let’s handle them with
CompletableFuture!
@DmitryVinnik dvinnik.com
Transformation/Chaining
@DmitryVinnik dvinnik.com
Transformation/Chainin
g
Workflows
ForkJoin
Pool
@DmitryVinnik dvinnik.com
Tasks Composition
@DmitryVinnik dvinnik.com
Tasks Composition
Workflows
Flat Map
@DmitryVinnik dvinnik.com
Controllable Futures
@DmitryVinnik dvinnik.com
Controllable Futures
Completable
Timeout/
Default Value
@DmitryVinnik dvinnik.com
Multiple Futures Control
@DmitryVinnik dvinnik.com
Multiple Futures Control
AllOf/AnyOf
Results Not
Formatted
@DmitryVinnik dvinnik.com
Tasks Combination
@DmitryVinnik dvinnik.com
Tasks Combination
Collect
Results
Sync/Async
@DmitryVinnik dvinnik.com
Exception Handling
@DmitryVinnik dvinnik.com
Exception Handling
@DmitryVinnik dvinnik.com
Call For Action
Embrace
Concurrency
Review Your
Application
Continue
Learning
@DmitryVinnik dvinnik.com
Q/A
@DmitryVinnik dvinnik.com
About Speaker
Twitter: @DmitryVinnik
Blog: dvinnik.com
LinkedIn: in/dmitry-vinnik/
Email: dmitry@dvinnik.com

Weitere ähnliche Inhalte

Ähnlich wie Back to the CompletableFuture: Concurrency in Action

Ähnlich wie Back to the CompletableFuture: Concurrency in Action (20)

Hands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to HeroHands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to Hero
 
Lessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - ReversimLessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - Reversim
 
From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey
 
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven MicroservicesBuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
 
Kentico Cloud - Our First Impressions
Kentico Cloud - Our First Impressions Kentico Cloud - Our First Impressions
Kentico Cloud - Our First Impressions
 
Serverless a superpower for frontend developers
Serverless a superpower for frontend developersServerless a superpower for frontend developers
Serverless a superpower for frontend developers
 
Beware the potholes
Beware the potholesBeware the potholes
Beware the potholes
 
DevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservicesDevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservices
 
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
[Webinar] Announcing the Camunda Cloud Public Beta - February 2020
 
Empowering businesses with serverless
Empowering businesses with serverlessEmpowering businesses with serverless
Empowering businesses with serverless
 
Architecture in real
Architecture in realArchitecture in real
Architecture in real
 
Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google Webinar #5: Mobile indsigter og trends ft. Google
Webinar #5: Mobile indsigter og trends ft. Google
 
Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)Micro Frontends Architecture - Jitendra kumawat (Guavus)
Micro Frontends Architecture - Jitendra kumawat (Guavus)
 
JCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
 
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
 
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven MicroservicesWix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
 
GeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservicesGeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservices
 
How to build a social network on serverless
How to build a social network on serverlessHow to build a social network on serverless
How to build a social network on serverless
 
Cloud Native & Docker
Cloud Native & DockerCloud Native & Docker
Cloud Native & Docker
 
Dynamically Testing Individual Microservice Releases In Production
  Dynamically Testing Individual Microservice Releases In Production  Dynamically Testing Individual Microservice Releases In Production
Dynamically Testing Individual Microservice Releases In Production
 

Mehr von Dmitry Vinnik

Mehr von Dmitry Vinnik (17)

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
 
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
 
Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!
 
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with YogaCross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with Yoga
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
 
Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
 
Domain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDomain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re Doing
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

Kürzlich hochgeladen (20)

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 

Back to the CompletableFuture: Concurrency in Action

Hinweis der Redaktion

  1. How many of you have Macbook Pro? How many of you used AWS/Azure? Have you heard about Microservices
  2. How many of you have Macbook Pro? How many of you used AWS/Azure? Have you heard about Microservices Source: The Next Platform
  3. Change or die situation at this point World perspective
  4. Change or die situation at this point World perspective
  5. Change or die situation at this point World perspective
  6. Source: Pixabay
  7. Source: Pixabay
  8. Source: Pixabay
  9. Source: Pixabay
  10. This is our path for the rest of today This arrow is our talk
  11. This is our path for the rest of today This arrow is our talk
  12. This is our path for the rest of today This arrow is our talk
  13. This is our path for the rest of today This arrow is our talk
  14. Excuses to Avoid Concurrency: “My app is single threaded” “Concurrency is too complicated” “It works most of the time” “If it is not broken, don't touch it”
  15. Excuses to Avoid Concurrency: “My app is single threaded” “Concurrency is too complicated” “It works most of the time” “If it is not broken, don't touch it”
  16. Excuses to Avoid Concurrency: “My app is single threaded” “Concurrency is too complicated” “It works most of the time” “If it is not broken, don't touch it”
  17. Excuses to Avoid Concurrency: “My app is single threaded” “Concurrency is too complicated” “It works most of the time” “If it is not broken, don't touch it”
  18. “Always Design for Concurrency” - Pragmatic Programmer
  19. Good example is http clienta
  20. Good example is http clienta
  21. Good example is http clienta
  22. This is our path for the rest of today This arrow is our talk
  23. https://platformio.org/platformio-ide
  24. https://platformio.org/platformio-ide
  25. https://platformio.org/platformio-ide
  26. https://platformio.org/platformio-ide
  27. https://platformio.org/platformio-ide
  28. https://platformio.org/platformio-ide
  29. https://platformio.org/platformio-ide
  30. https://platformio.org/platformio-ide
  31. https://platformio.org/platformio-ide
  32. This is our path for the rest of today This arrow is our talk
  33. This is our path for the rest of today This arrow is our talk
  34. Will be sharing slides, github and useful links