php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #46919 Multi threading
Submitted: 2008-12-21 19:39 UTC Modified: 2013-01-16 21:54 UTC
Votes:43
Avg. Score:4.8 ± 0.7
Reproduced:30 of 32 (93.8%)
Same Version:21 (70.0%)
Same OS:25 (83.3%)
From: n0valyfe at gamergrid dot net Assigned:
Status: Wont fix Package: *General Issues
PHP Version: 5.2.8 OS: All
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: n0valyfe at gamergrid dot net
New email:
PHP Version: OS:

 

 [2008-12-21 19:39 UTC] n0valyfe at gamergrid dot net
Description:
------------
Would it be possible to add some sort of multithreading into PHP, say a new thread is created via a function, to execute a function or object method in a new thread.

Keeping the scope intact, so that $this and global vars work inside that function in another thread.

I think this would benefit PHP in many ways, for instance a script wouldnt "hang" when executing something that can take a while, it can just open a new thread.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-04-01 15:05 UTC] speedy dot spam at gmail dot com
What would be really great to have is something similar to classic pcntl_clone() linux kernel function on the PHP level, accepting a function to be executed as a parameter and sharing all the variables/state with the primary and other created threads.

Locking could be done with a simple and optional use of mutexes on the application level, if one needs to view fully consistent state of a certain variable / array. (ie. otherwise, foreach() loop while writing to an array in the other thread might not see some recently added entries)

As an idea, on the internal implementation side, copy-on-write semantics could be used with read-only operations seeing the previous version while the write/modify operation is executed on a copy.

Even if unstable at first (marked as experimental or some such), it would be a good starting point for making PHP thread-safe, re-entrant, and multi-core compatible.
 [2012-03-21 22:09 UTC] jose dot nobile at gmail dot com
How many year the PHP community will wait for <?PHP new Thread?>
 [2013-01-16 21:34 UTC] invictible at live dot co dot uk
I believe, that this would be a excellant addition to PHP as I've run into many situation where multi-threading would have made it much more performant than simply running everything in one thread where a single function taking it's time or other lengthy tasks can have a significant impact on the time it takes the script to run.
 [2013-01-16 21:54 UTC] rasmus@php.net
This is not going to happen in PHP core, but it can be done through an extension. 
One example is here: http://pecl.php.net/package/pthreads
 [2013-01-16 21:54 UTC] rasmus@php.net
-Status: Open +Status: Wont fix -Package: Feature/Change Request +Package: *General Issues
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Nov 22 13:01:29 2024 UTC