Top Banner
PHP and \Thread based development September 2013 Sunday, September 22, 13
27

Thread based development with PHP

Jul 06, 2015

Download

Technology

wagner_tim78

Talk about thread based software development with PHP using Joe Watkins PECL extension phtreads.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Thread based development with PHP

PHP and \Thread based development

September 2013

Sunday, September 22, 13

Page 2: Thread based development with PHP

PHP and \Thread based development

\Schedule

What is a \Thread

What do i need to work with \Threads in PHP

Starting a simple \Thread

Stack data using a \Worker

Sharing data using a \Stackable

Synchronize using a \Mutex

Synchronize using a \Closure

Stack your data on a \Worker

Sharing resources

Problems you’ll face when working with \Threads

Sunday, September 22, 13

Page 3: Thread based development with PHP

What is a \ThreadProcedure that runs independently from its main program

Threads typically exists as subsets of processes

Sunday, September 22, 13

Page 4: Thread based development with PHP

What do i need to work with \ThreadsPHP 5.3+

compiled thread safe with --enable-maintainer-zts

PECL extension pthreads

or install runtime from http://appserver.io

Sunday, September 22, 13

Page 5: Thread based development with PHP

Starting a simple \ThreadShows how a \Thread will be created and started

That the script has been finished before the Thread has been finished

Sunday, September 22, 13

Page 6: Thread based development with PHP

PHP and \Thread based development

Starting a simple \Thread

Sunday, September 22, 13

Page 7: Thread based development with PHP

PHP and \Thread based development

Starting a simple \Thread - Result

Sunday, September 22, 13

Page 8: Thread based development with PHP

Stack data using a \WorkerAllows you to stack data and execute in a \Thread

Works like a queue

Interesting to build a daemon e. g. a HTTP server ;)

Sunday, September 22, 13

Page 9: Thread based development with PHP

PHP and \Thread based development

Sharing data using a \Stackable

Sunday, September 22, 13

Page 10: Thread based development with PHP

PHP and \Thread based development

Stacking data using a \Worker - Result

Sunday, September 22, 13

Page 11: Thread based development with PHP

Sharing data using a \StackableTasks that are executed by \Worker threads

Enables you to share data between threads

Sunday, September 22, 13

Page 12: Thread based development with PHP

PHP and \Thread based development

Sharing data using a \Stackable

Sunday, September 22, 13

Page 13: Thread based development with PHP

PHP and \Thread based development

Sharing data using a \Stackable - Result

Sunday, September 22, 13

Page 14: Thread based development with PHP

Synchronize using a \MutexCan be used to prevent threads overwrite shared data

Sunday, September 22, 13

Page 15: Thread based development with PHP

PHP and \Thread based development

Synchronize using a \Mutex

Sunday, September 22, 13

Page 16: Thread based development with PHP

PHP and \Thread based development

Starting a simple \Thread - Result

Sunday, September 22, 13

Page 17: Thread based development with PHP

Synchronize using a \ClosureNecessary to influence \Thread workflow

Allows starting/stopping a referenced \Thread

Sunday, September 22, 13

Page 18: Thread based development with PHP

PHP and \Thread based development

Synchronize using a \Closure

Sunday, September 22, 13

Page 19: Thread based development with PHP

PHP and \Thread based development

Synchronize using a \Closure - Result

Sunday, September 22, 13

Page 20: Thread based development with PHP

Sharing resourcesSome resource types can be shared, e. g. sockets

Not all resources can be shared, e. g. MySQLi

Sunday, September 22, 13

Page 21: Thread based development with PHP

PHP and \Thread based development

Sharing resources

Sunday, September 22, 13

Page 22: Thread based development with PHP

PHP and \Thread based development

Sharing resources - Result

Sunday, September 22, 13

Page 23: Thread based development with PHP

appserver.io, a referenceHTTP 1.1 compliant web server

Persistence Container supporting Doctrine

MessageQueue

Websocket Server based on Ratchet

Demo applications available: Neos, Magento ... more soon

Sunday, September 22, 13

Page 24: Thread based development with PHP

PHP and \Thread based development

Installation

as .pkg file on Mac OS X 10.8.x

as .deb for Debian 7.x + Ubuntu 12.04

Debian Repository http://deb.appserver.io

Sunday, September 22, 13

Page 25: Thread based development with PHP

PHP and \Thread based development

Website

Sunday, September 22, 13

Page 27: Thread based development with PHP

PHP and \Thread based development

Tim WagnerTechDivision GmbHSpinnereiinsel 3a83059 Kolbermoor

+49 8031 / 221055-0 +49 8031 / 221055-22 [email protected]

www.techdivision.com

Thanks!

Sunday, September 22, 13