Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Joe Watkins:
What Polly Really Wants
Sep 16, 2015 @ 11:49:03

Joe Watkins has a post to his site talking about polyfills and pthreads and some feedback he received during his work on the extension that allows for multi-threaded handling in PHP.

Recently a fellow githubber opened an issue for pthreads, they are writing a static analysis suite for PHP, and are attempting to integrate pthreads into their code. First thing to say is, I don't know where that will lead him. But it does give him the problem that a lot of environments don't have pthreads available, and or they aren't using a thread safe interpreter.

In the issue, he made the suggestion that we have a compatibility layer, a polyfill. I confess, this had never occurred to me before. Not only does it solve his problem but it actually serves as a useful tool ... I shall explain.

He starts by answering a question he's gotten a lot during his work on pthreads: "what's a good use case for threading?" Instead he answers a question that follows the intent a bit more: "What kind of code lends itself to threading?" He talks about units of work and separation of responsibility and how it "avoids synchronization" that could be caused by unforeseen circumstances. He instead recommends that, for most applications, true multi-threading probably isn't needed and a polyfill that simulates the functionality is probably good enough.

tagged: polyfill pthreads thread multithread synchronization

Link: http://blog.krakjoe.ninja/2015/09/what-polly-really-wants.html

Three Devs & A Maybe Podcast:
PHP Internals, pthreads and PHPDBG with Joe Watkins
May 29, 2014 @ 10:48:54

In the latest episode of the Three Devs and a Maybe podcast, Episode #26, Michael Budd, Fraser Hart, Lewis Cains and Edd Mann share some opinions about the PHP internals mailing list, pthreads and the PHPDBG project (with guest and project developer >Joe Watkins).

This week we are very lucky to have Joe Watkins from pthreads and PHPDBG fame on the podcast. Starting off discussion with the 'PHP Next Generation' drama, we move on to wrap-up our thoughts on the 'Is TDD dead' set of Google Hangouts. The topic then shifts onto our guest and how he got into programming and PHP - with the creation of pthreads and PHPDBG projects discussed. Finally, we finish off the podcast with the regular quiz.

Other topics mentioned in this latest episode include the work being done on PHPNG, routing with regular expressions and the neural networks video lecture. You can listen to this latest episode either through the in-page player or by downloading the episode directly.

tagged: threedevsandamaybe podcast ep26 internals pthreads phpdbg

Link: http://threedevsandamaybe.com/posts/php-internals-pthreads-and-phpdbg-with-joe-watkins/

Multithreading in PHP with pthreads
Aug 05, 2013 @ 11:21:31

On Reddit.com there's a post from krakjoe talking about using multithreating in PHP, specifically with pthreads. Unfortunately, there's several misconceptions about the pthreads (and concurrency) that still makes it difficult in PHP. The post lists a few of them:

  • PHP is not thread safe, there are lots of extensions that will give your application cooties.
  • pthreads is old fashioned
  • pthreads does not include everything you need to execute safely
  • pthreads unsafely shares memory among contexts in order to provide concurrent functionality
  • pthreads is beta and should be avoided at all costs

The author points out that pthreads are still in more of a "beta" state and probably shouldn't be used in production (though some do):

Multi-threading in PHP sounds like some sort of voodoo, for so long it's been something that was either impossible in the minds of php programmers, or a bad idea to try and emulate. pthreads doesn't emulate anything, it leverages bundled functionality and the object API to provide true userland multi-threading.
tagged: multithread pthreads extension summary misconceptions

Link: http://www.reddit.com/r/PHP/comments/1jo517/multithreading_in_php_with_pthreads/