V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
w516322644
V2EX  ›  PHP

工作了很久,基本上没用过 PHP 的多线程,想问下用的很场景。

  •  
  •   w516322644 · 2019-08-22 16:31:18 +08:00 · 5033 次点击
    这是一个创建于 1899 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题。
    19 条回复    2019-08-30 11:22:28 +08:00
    MarkOrca
        1
    MarkOrca  
       2019-08-22 16:36:10 +08:00
    别问,问就是换语言
    MarksGui
        2
    MarksGui  
       2019-08-22 16:37:18 +08:00
    建议直接用 go
    robinchina
        3
    robinchina  
       2019-08-22 16:39:03 +08:00
    爬虫?
    jowan
        4
    jowan  
       2019-08-22 16:44:08 +08:00
    异步 后台任务 耗时任务 数据分析 爬虫等
    TypeErrorNone
        5
    TypeErrorNone  
       2019-08-22 16:47:21 +08:00
    换 go
    Varobjs
        6
    Varobjs  
       2019-08-22 19:58:05 +08:00 via Android
    没有
    JingKeWu
        7
    JingKeWu  
       2019-08-22 20:02:50 +08:00
    采集的时候
    junan0708
        8
    junan0708  
       2019-08-22 20:07:28 +08:00 via Android
    多进程,PHP 没有多线程
    ben1024
        9
    ben1024  
       2019-08-22 20:13:41 +08:00
    处理对运行时间有要求任务时有用

    swoole
    reactphp
    workman
    AngryPanda
        10
    AngryPanda  
       2019-08-22 20:15:41 +08:00
    pthreads is an object-orientated API that provides all of the tools needed for multi-threading in PHP.
    areless
        11
    areless  
       2019-08-22 21:03:56 +08:00 via Android
    挂个 cli 处理费时任务就可以了,那么多进程异步的真正意义是?我看以前大任务按量同步分步骤执行效率也不低啊=____=
    yukiir
        12
    yukiir  
       2019-08-22 21:07:57 +08:00
    没有用过,只把多进程的并发问题整明白了。
    zachgenius
        13
    zachgenius  
       2019-08-22 21:13:50 +08:00
    php 有多线程??? 它只有多进程吧?
    swat199538
        14
    swat199538  
       2019-08-22 22:06:52 +08:00
    多线程不到,多进程到时跟其它类 C 语言没啥不同。



    <?php

    for($i=0;$i<5;$i++){
    $pid = pcntl_fork();

    if($pid == -1){
    exit("fork 失败");
    }

    if($pid == 0){
    echo "我是子进程\n";
    sleep(100);
    exit();
    }
    }

    $n= 0;
    while($number < 5){
    $nStatus = -1;
    $nPid = pcntl_wait($nStatus, WNOHANG);
    if ($nPid > 0) {
    $n++;
    }
    }
    encro
        15
    encro  
       2019-08-23 09:17:46 +08:00
    前几天恰好用到,
    然后发现大部分编译都是 nts (非线程安全的),不支持 pthread,
    需要自己重新安装 ts (线程安全)版本,并编译 pthread 扩展,
    安装好扩展后,发现 pthread 扩展有 BUG,在 linux 运行成功,实际没效果,
    一怒之下用 GO 改写,花了 1 天多时间,
    内存小了,速度快了,代码简洁了,真香。
    hhh798
        16
    hhh798  
       2019-08-23 11:01:40 +08:00
    PHP 写点 crud,渲染个页面就完了,还多线程,想啥呢,那是它该干和能干的事儿吗
    salamanderMH
        17
    salamanderMH  
       2019-08-23 12:56:59 +08:00
    多进程
    Wenco
        18
    Wenco  
       2019-08-24 08:45:53 +08:00
    @nioncodotcom 韩天峰听了想打人
    zibber
        19
    zibber  
       2019-08-30 11:22:28 +08:00
    swoole 也是多进程模型
    想学多线程 去看看 java 或者 go 吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2770 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:37 · PVG 22:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.