18
Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Embed Size (px)

Citation preview

Page 1: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Parallel Programming with OmniThreadLibraryPrimož Gabrijelčič

Page 2: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Primož Gabrijelčič

programmer, consultant, speaker, trainer

Delphi / Smart Mobile Studio

Email: [email protected]: @thedelphigeekSkype: gabr42

The Delphi Geek – http://www.thedelphigeek.comSmart Programmer – http://www.smartprogrammer.org

Page 3: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič
Page 4: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

What is OmniThreadLibrary?

Page 5: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

OmniThreadLibrary is …

• … VCL for multithreading• … released under an open license• … actively developed• … frequently used• … available in Delphis from 2007 to XE3– Windows 32- or 64-bit, VCL only

Page 6: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I learn more?

Page 7: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

OmniThreadLibrary on the web

• Home: otl.17slon.com• Code: omnithreadlibrary.googlecode.com• Book: leanpub.com/omnithreadlibrary• Wiki: otl.17slon.com/book• Support: otl.17slon.com/forum

Page 8: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I execute long operation in background

and run some code in the main thread after the

long operation has finished?

Page 9: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Async/Await

Initialization

Cleanup

Long operation

Page 10: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I run long calculation in background and

process the result in the main thread?

Page 11: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Future

Use result

Long calculation

Page 12: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I run same background operation in

multiple simultaneous copies processing an

input?

Page 13: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Background Worker

Data

Process

Result

Process Process

Process Process

Page 14: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I parallelize a process that executes in

multiple stages?

Page 15: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Pipeline

Data

Stage 1

Result

Stage 2Stage 3Stage 4

Page 16: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

How do I work with databases in multithreaded

environment?

Page 17: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Databases

GUI

Database AccessFrame

Frame

Page 18: Parallel Programming with OmniThreadLibrary Primož Gabrijelčič

Questions?