Re: php and multithreading (additional arguments)

From: Date: Mon, 05 Apr 2010 15:57:38 +0000
Subject: Re: php and multithreading (additional arguments)
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-47789@lists.php.net to get a copy of this message
On Mon, Apr 5, 2010 at 7:17 PM, Alexey Zakhlestin <indeyets@gmail.com> wrote: > > On 05.04.2010, at 13:46, Moriyoshi Koizumi wrote: > >> I used to play with TSRM days ago and successfully implemented >> userland threading support using GNU Pth.  It's just a proof of >> concept and I did it for fun. > > So these are share-nothing worker-threads, which can send results to "master-thread" > using messages. right? > I am perfectly fine with such approach A new thread can be created within a sub-thread as well. In addition, messages can be interchanged between any pair of threads. While it is based on shared-nothing approach, some kinds of resources are shared across threads besides classes and functions that would have already been defined before the thread creation. > > some stylistic moments: > * I would use closures instead of callback-functions I was trying hard to make closures work with the extension, but it wouldn't end up with a success. I guess I can fix it somehow. > * Is extra language construct really needed? function-call would work just fine I don't quite think so. It was just an experiment, and each extra syntactic sugar would get converted to a corresponding single function call (either thread_message_queue_post() or thread_message_queue_poll() .) > Is overhead of starting new thread large? The cost is almost the same as when spawning a new runtime instance on a threaded web server with TSRM enabled. If you'd pass a large data to the subthread, then the overhead should go large because of the deep copy. Moriyoshi

« previous php.internals (#47789) next »