Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by cmn32480 on Wednesday November 25 2015, @10:31AM   Printer-friendly
from the get-this-all-sewn-up dept.

As far as I can remember, PHP has always had a terrible reputation at handling very heavy (or asynchronous) tasks. For a long while if you wanted to parallelize long tasks you had to resort to forking through pcntl_fork which had its own issues, and you couldn't really handle the results of those tasks properly, etc.

As such, a habit has kind of developed where we go straight for more intricate solutions such as queuing (which just delays your task if anything), React PHP, or even using another language altogether. But PHP can do threading, and more importantly it's a lot easier than you probably think.

In this article I'm going to dive into the pthreads extension (short for POSIX Threads). It has been around for a while (since 2012) but I feel like too many people forget it exists or assume it is going to be painful to use – mostly because the official documentation is rather slim about it.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by Thexalon on Thursday November 26 2015, @03:49AM

    by Thexalon (636) on Thursday November 26 2015, @03:49AM (#268233)

    No, I'm referring to PHP the language. My favorite example of how terrible it is: What happens when an error condition is encountered? The answer is *any* of the following, depending on the exact nature of the error condition:
    - The PHP process seg-faults and dies.
    - An exception is thrown up the call stack that may be caught and handled.
    - The error_handler function, if any is registered, is called. If not, an error message is sent to the output, and execution sometimes is halted.
    - The shutdown_handler function, if any is registered, is called. If not, an error message is sent to the output and execution halted.
    - The function spits a warning out to the user, and then the script attempts to continue, potentially with bad data.
    - The function quietly returns an invalid value that looks extremely similar or even identical to a legitimate value.
    - The function quietly returns a value that isn't remotely like a legitimate value, but provides no information whatsoever about what might have gone wrong. You have to call another function to find out what the error was.

    Compare that to well-designed languages, where what happens when things go wrong is something along the lines of:
    - An exception is thrown up the call stack that may be caught and handled.

    Once you experience those options, the PHP situation seems really truly insane.

    --
    The only thing that stops a bad guy with a compiler is a good guy with a compiler.
    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2