今天看了并行编程点东西。貌似php在这方面比较弱啊  大家有什么观点

解决方案 »

  1.   

    PHP语言本身是不支持多线程的,但是可以利用操作系统如linux或者apache去实现并行操作.
      

  2.   

    PCNTL
    在线手册:中文 英文PHP手册--------------------------------------------------------------------------------简介
    PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。 这份文档用于阐述每个进程控制函数的通常用法。关于Unix进程控制的更多信息建议您查阅 系统文档中关于fork(2),waitpid(2),signal(2)等的部分或更全面的参考资料比如 《Unix环境高级编程》(作者:W. Richard Stevens,Addison-Wesley出版)。 PCNTL现在使用了ticks作为信号处理的回调机制,ticks在速度上远远超过了之前的处理机制。 这个变化与“用户ticks”遵循了相同的语义。您可以使用declare() 语句在程序中指定允许发生回调的位置。这使得我们对异步事件处理的开销最小化。在编译PHP时 启用pcntl将始终承担这种开销,不论您的脚本中是否真正使用了pcntl。 有一个调整是PHP 4.3.0之前的所有pcntl脚本要使其工作,要么在期望允许回调的(代码)部分使用 declare() ,要么使用declare()新的全局语法 使其在整个脚本范围有效。 Note: 此扩展在 Windows 平台上不可用。
      

  3.   

    php+linux+apache+lamp可以实现test.php<?
    for ($i=0;$i<10;$i++) {
    echo $i;
    sleep(10);
    }
    ?>
    shell脚本#!/bin/bash
    for i in 1 2 3 4 5 6 7 8 9 10
    do
    /usr/bin/php -q /var/www/html/test.php &
    done
    注意到在请求php代码的那行有个&,这是关键,不加的话是不能进行多线程的。&表示服务推送到后台执行
    在shell的每次循环中不必等php代码全部执行完再请求下一个文件,而是同时进行的,这样就实现了多线程
      

  4.   

    啥是并行编程?php是单进程的!多进程可用apache的多进程!
      

  5.   

    1并行程序设计对环境工具的要求远比串行程序设计先进得多;
    2串行程序设计比较适合于自然习惯,且人们在过去积累了大量的编程知识和宝贵的软件财富.
    3并行程序设计不但包含了串行程序设计,而且还包含了更多的富有挑战性的问题 
    4并行指的不单单是多线程。
    PHP对并行的支持不力,
    我个人觉得主要是因为
    开发团队的主要服务目标不是高新技术,而是互联网主流,
    而且在php中貌似是可以并行的(貌似以前有个介绍此技术的帖子),但是你要知道php的优势是:
    程序开发快,运行快,技术本身学习快,嵌入HTML
    这样的情况下如果多线程,貌似就丢掉了一些PHP的优势