"I would prefer it to be written in PHP or Java (I know PHP can't do multiple threads, but it could be accomplished with multiple processes)".
What do开发者_如何学Ces this statement mean when it says "multiple processes"? Are there any good examples out there?
A process it more or less a program launch. For instance if you launch a web server two times you will have two process, which will be able to respond to different requests at the same time.
A thread is more or less a sub-process inside a process. That way web server usually have multiple thread handling requests from different users. That mean that multiple requests can be handled at the same time by only one process.
Multiple-processes means several processes, probably executed in parallel.
And a "process" is just an execution of a program.
So, multiple-processes means several executions of a program -- in parallel, to achieve some kind of multiple-threads result : instead of having one program with several threads, which is not possible in PHP, you launch the same program more than once in parallel (and, generally, each instance of a program will work with a subset of the total amout of data).
The best example of "multiple processes" is Apache httpd itself. Starting it brings up a "parent" process which then starts one or more "child" processes that handle the requests:
# ps auxfww | grep '[h]ttpd'
root 8632 0.0 0.2 247376 8380 ? Ss 05:57 0:00 /usr/sbin/httpd
apache 8635 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8636 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8637 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8638 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8639 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8640 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8641 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
apache 8642 0.0 0.1 247376 4716 ? S 05:57 0:00 \_ /usr/sbin/httpd
精彩评论