Soumettre la recherche
Mettre en ligne
Pick up the low-hanging concurrency fruit
•
Télécharger en tant que ODP, PDF
•
3 j'aime
•
871 vues
Vaclav Pech
Suivre
My presentation on concurrency at GeeCON 2011
Lire moins
Lire la suite
Technologie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 34
Télécharger maintenant
Recommandé
GPars howto - when to use which concurrency abstraction
GPars howto - when to use which concurrency abstraction
Vaclav Pech
Concurrency on the JVM
Concurrency on the JVM
Vaclav Pech
Gpars workshop
Gpars workshop
Vaclav Pech
Reason and GraphQL
Reason and GraphQL
Nikolaus Graf
Poor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
Refactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Time Series Meetup: Virtual Edition | July 2020
Time Series Meetup: Virtual Edition | July 2020
InfluxData
Recommandé
GPars howto - when to use which concurrency abstraction
GPars howto - when to use which concurrency abstraction
Vaclav Pech
Concurrency on the JVM
Concurrency on the JVM
Vaclav Pech
Gpars workshop
Gpars workshop
Vaclav Pech
Reason and GraphQL
Reason and GraphQL
Nikolaus Graf
Poor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
Refactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Time Series Meetup: Virtual Edition | July 2020
Time Series Meetup: Virtual Edition | July 2020
InfluxData
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Ontico
C# console programms
C# console programms
Yasir Khan
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
mattpodwysocki
C# labprograms
C# labprograms
Jafar Nesargi
Thinking Functionally with JavaScript
Thinking Functionally with JavaScript
Luis Atencio
Pattern printing programs
Pattern printing programs
Mukesh Tekwani
Oop lecture9 13
Oop lecture9 13
Shahriar Robbani
Lab 1
Lab 1
rimshailyas1
SeaJUG March 2004 - Groovy
SeaJUG March 2004 - Groovy
Ted Leung
Vasia Kalavri – Training: Gelly School
Vasia Kalavri – Training: Gelly School
Flink Forward
C#
C#
actacademy
Is java8 a true functional programming language
Is java8 a true functional programming language
SQLI
Is java8a truefunctionallanguage
Is java8a truefunctionallanguage
Samir Chekkal
Connect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka Streams
Seiya Mizuno
オープンデータを使ったモバイルアプリ開発(応用編)
オープンデータを使ったモバイルアプリ開発(応用編)
Takayuki Goto
My Gentle Introduction to RxJS
My Gentle Introduction to RxJS
Mattia Occhiuto
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScript
Viliam Elischer
Ruslan Shevchenko - Property based testing
Ruslan Shevchenko - Property based testing
Ievgenii Katsan
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
Badoo Development
20170714 concurrency in julia
20170714 concurrency in julia
岳華 杜
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Gina Montgomery, V-TSP
Workshop_Navigating A Down Economy
Workshop_Navigating A Down Economy
guestdb3804
Contenu connexe
Tendances
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Ontico
C# console programms
C# console programms
Yasir Khan
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
mattpodwysocki
C# labprograms
C# labprograms
Jafar Nesargi
Thinking Functionally with JavaScript
Thinking Functionally with JavaScript
Luis Atencio
Pattern printing programs
Pattern printing programs
Mukesh Tekwani
Oop lecture9 13
Oop lecture9 13
Shahriar Robbani
Lab 1
Lab 1
rimshailyas1
SeaJUG March 2004 - Groovy
SeaJUG March 2004 - Groovy
Ted Leung
Vasia Kalavri – Training: Gelly School
Vasia Kalavri – Training: Gelly School
Flink Forward
C#
C#
actacademy
Is java8 a true functional programming language
Is java8 a true functional programming language
SQLI
Is java8a truefunctionallanguage
Is java8a truefunctionallanguage
Samir Chekkal
Connect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka Streams
Seiya Mizuno
オープンデータを使ったモバイルアプリ開発(応用編)
オープンデータを使ったモバイルアプリ開発(応用編)
Takayuki Goto
My Gentle Introduction to RxJS
My Gentle Introduction to RxJS
Mattia Occhiuto
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScript
Viliam Elischer
Ruslan Shevchenko - Property based testing
Ruslan Shevchenko - Property based testing
Ievgenii Katsan
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
Badoo Development
20170714 concurrency in julia
20170714 concurrency in julia
岳華 杜
Tendances
(20)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
Kotlin Perfomance on Android / Александр Смирнов (Splyt)
C# console programms
C# console programms
Cascadia.js: Don't Cross the Streams
Cascadia.js: Don't Cross the Streams
C# labprograms
C# labprograms
Thinking Functionally with JavaScript
Thinking Functionally with JavaScript
Pattern printing programs
Pattern printing programs
Oop lecture9 13
Oop lecture9 13
Lab 1
Lab 1
SeaJUG March 2004 - Groovy
SeaJUG March 2004 - Groovy
Vasia Kalavri – Training: Gelly School
Vasia Kalavri – Training: Gelly School
C#
C#
Is java8 a true functional programming language
Is java8 a true functional programming language
Is java8a truefunctionallanguage
Is java8a truefunctionallanguage
Connect S3 with Kafka using Akka Streams
Connect S3 with Kafka using Akka Streams
オープンデータを使ったモバイルアプリ開発(応用編)
オープンデータを使ったモバイルアプリ開発(応用編)
My Gentle Introduction to RxJS
My Gentle Introduction to RxJS
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScript
Ruslan Shevchenko - Property based testing
Ruslan Shevchenko - Property based testing
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
20170714 concurrency in julia
20170714 concurrency in julia
En vedette
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Gina Montgomery, V-TSP
Workshop_Navigating A Down Economy
Workshop_Navigating A Down Economy
guestdb3804
Bmpr 10forseo july2010
Bmpr 10forseo july2010
Susan Price
How to attract more clients by focusing on the low hanging fruit
How to attract more clients by focusing on the low hanging fruit
Fabienne Fredrickson
Retention Strategies: A Steady Diet of Low-Hanging Fruit
Retention Strategies: A Steady Diet of Low-Hanging Fruit
Vivastream
Impact Your Business: Identify Low Hanging Fruits for SharePoint 2013 No-Code...
Impact Your Business: Identify Low Hanging Fruits for SharePoint 2013 No-Code...
Gina Montgomery, V-TSP
Generating Leads Through Social Networking For Slide Share
Generating Leads Through Social Networking For Slide Share
michaelbwatson
Web Analytics Analysis: How to Find Low-Hanging Fruit and A/B Test Ideas
Web Analytics Analysis: How to Find Low-Hanging Fruit and A/B Test Ideas
Shanelle Mullin
#SPSSAC Identifying Low Hanging Fruit for SharePoint 2013 No-Code Solutions
#SPSSAC Identifying Low Hanging Fruit for SharePoint 2013 No-Code Solutions
Gina Montgomery, V-TSP
En vedette
(9)
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Impact Your Business; Identifying Low-Hanging Fruit for SharePoint 2013 No-Co...
Workshop_Navigating A Down Economy
Workshop_Navigating A Down Economy
Bmpr 10forseo july2010
Bmpr 10forseo july2010
How to attract more clients by focusing on the low hanging fruit
How to attract more clients by focusing on the low hanging fruit
Retention Strategies: A Steady Diet of Low-Hanging Fruit
Retention Strategies: A Steady Diet of Low-Hanging Fruit
Impact Your Business: Identify Low Hanging Fruits for SharePoint 2013 No-Code...
Impact Your Business: Identify Low Hanging Fruits for SharePoint 2013 No-Code...
Generating Leads Through Social Networking For Slide Share
Generating Leads Through Social Networking For Slide Share
Web Analytics Analysis: How to Find Low-Hanging Fruit and A/B Test Ideas
Web Analytics Analysis: How to Find Low-Hanging Fruit and A/B Test Ideas
#SPSSAC Identifying Low Hanging Fruit for SharePoint 2013 No-Code Solutions
#SPSSAC Identifying Low Hanging Fruit for SharePoint 2013 No-Code Solutions
Similaire à Pick up the low-hanging concurrency fruit
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Domenic Denicola
Столпы функционального программирования для адептов ООП, Николай Мозговой
Столпы функционального программирования для адептов ООП, Николай Мозговой
Sigma Software
Gpars concepts explained
Gpars concepts explained
Vaclav Pech
I am sorry but my major does not cover programming in depth (ICT) an.pdf
I am sorry but my major does not cover programming in depth (ICT) an.pdf
seamusschwaabl99557
Functional JavaScript for everyone
Functional JavaScript for everyone
Bartek Witczak
Javascript And J Query
Javascript And J Query
itsarsalan
Poly-paradigm Java
Poly-paradigm Java
Pavel Tcholakov
Secrets of JavaScript Libraries
Secrets of JavaScript Libraries
jeresig
Pragmatic Real-World Scala (short version)
Pragmatic Real-World Scala (short version)
Jonas Bonér
Pragmatic Real-World Scala
Pragmatic Real-World Scala
parag978978
AST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
Working effectively with legacy code
Working effectively with legacy code
ShriKant Vashishtha
ES6 Overview
ES6 Overview
Bruno Scopelliti
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
The Beauty Of Java Script V5a
The Beauty Of Java Script V5a
rajivmordani
Think Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJS
Adam L Barrett
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
SDC - Einführung in Scala
SDC - Einführung in Scala
Christian Baranowski
Functional programming using underscorejs
Functional programming using underscorejs
偉格 高
The Beauty of Java Script
The Beauty of Java Script
Michael Girouard
Similaire à Pick up the low-hanging concurrency fruit
(20)
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Столпы функционального программирования для адептов ООП, Николай Мозговой
Столпы функционального программирования для адептов ООП, Николай Мозговой
Gpars concepts explained
Gpars concepts explained
I am sorry but my major does not cover programming in depth (ICT) an.pdf
I am sorry but my major does not cover programming in depth (ICT) an.pdf
Functional JavaScript for everyone
Functional JavaScript for everyone
Javascript And J Query
Javascript And J Query
Poly-paradigm Java
Poly-paradigm Java
Secrets of JavaScript Libraries
Secrets of JavaScript Libraries
Pragmatic Real-World Scala (short version)
Pragmatic Real-World Scala (short version)
Pragmatic Real-World Scala
Pragmatic Real-World Scala
AST Transformations at JFokus
AST Transformations at JFokus
Working effectively with legacy code
Working effectively with legacy code
ES6 Overview
ES6 Overview
TypeScript Introduction
TypeScript Introduction
The Beauty Of Java Script V5a
The Beauty Of Java Script V5a
Think Async: Asynchronous Patterns in NodeJS
Think Async: Asynchronous Patterns in NodeJS
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
SDC - Einführung in Scala
SDC - Einführung in Scala
Functional programming using underscorejs
Functional programming using underscorejs
The Beauty of Java Script
The Beauty of Java Script
Plus de Vaclav Pech
Domain Specific Language with pleasure
Domain Specific Language with pleasure
Vaclav Pech
Concepts of JetBrains MPS
Concepts of JetBrains MPS
Vaclav Pech
Advanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenches
Vaclav Pech
Get 'em before they get You
Get 'em before they get You
Vaclav Pech
Groovy in IntelliJ IDEA
Groovy in IntelliJ IDEA
Vaclav Pech
Groovy Intro
Groovy Intro
Vaclav Pech
Team City
Team City
Vaclav Pech
Plus de Vaclav Pech
(7)
Domain Specific Language with pleasure
Domain Specific Language with pleasure
Concepts of JetBrains MPS
Concepts of JetBrains MPS
Advanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenches
Get 'em before they get You
Get 'em before they get You
Groovy in IntelliJ IDEA
Groovy in IntelliJ IDEA
Groovy Intro
Groovy Intro
Team City
Team City
Dernier
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
hans926745
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
The Digital Insurer
Dernier
(20)
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
Pick up the low-hanging concurrency fruit
1.
2.
3.
4.
5.
# of cores
Today Soon
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Tree traversal
19.
File scan /
search
20.
21.
22.
23.
24.
No live-locks
25.
26.
27.
28.
df .y =
5
29.
}
30.
assert 15 ==
df .z
31.
Composing async functions
int hash1 = hash(download( 'http://www.gpars.org' )) int hash2 = hash(loadFile( '/gpars/website/index.html' )) boolean result = compare(hash1, hash2) println result
32.
Composing async functions
def hash = oldHash.asyncFun() def compare = oldCompare.asyncFun() def download = oldDownload.asyncFun() def loadFile = oldLoadFile.asyncFun() def hash1 = hash(download( 'http://www.gpars.org' )) def hash2 = hash(loadFile( '/gpars/website/index.html' )) def result = compare(hash1, hash2) println result .get()
33.
Composing async functions
int hash(String text ) {…} Promise<int> hash( Promise<String> | String text )
34.
35.
Wait (non-blocking) for
the text param
36.
Call the original
hash()
37.
Bind the
result }
38.
Composing async functions
Combine functions as usual Parallelism is detected automatically
39.
40.
Fork/Join
41.
Parallel collection processing
42.
Dataflow variables/streams
43.
44.
45.
Send a message
46.
47.
48.
public void onMessage(String
msg ) {
49.
String encripted
= encrypt( msg );
50.
reply( encripted );
51.
}
52.
public void onMessage(Integer
number ) {
53.
reply(2 *
number );
54.
}
55.
public void onMessage(Money
cash ) {
56.
System.out.println( "Received a
donation " + cash );
57.
account .deposit( cash
);
58.
}
59.
}
60.
Active Objects @ActiveObject
class MyCounter { private int counter = 0 @ActiveMethod def incrementBy( int value) { println "Received an integer: $value " this .counter += value } }
61.
62.
63.
Jon Kerridge, Napier
University
64.
65.
66.
http://www.jroller.com/vaclav
67.
http://twitter.com/vaclav_pech
Télécharger maintenant