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

2019-08-22 16:31:18 +08:00
 w516322644
如题。
5094 次点击
所在节点    PHP
19 条回复
MarkOrca
2019-08-22 16:36:10 +08:00
别问,问就是换语言
MarksGui
2019-08-22 16:37:18 +08:00
建议直接用 go
robinchina
2019-08-22 16:39:03 +08:00
爬虫?
jowan
2019-08-22 16:44:08 +08:00
异步 后台任务 耗时任务 数据分析 爬虫等
TypeErrorNone
2019-08-22 16:47:21 +08:00
换 go
Varobjs
2019-08-22 19:58:05 +08:00
没有
JingKeWu
2019-08-22 20:02:50 +08:00
采集的时候
junan0708
2019-08-22 20:07:28 +08:00
多进程,PHP 没有多线程
ben1024
2019-08-22 20:13:41 +08:00
处理对运行时间有要求任务时有用

swoole
reactphp
workman
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
2019-08-22 21:03:56 +08:00
挂个 cli 处理费时任务就可以了,那么多进程异步的真正意义是?我看以前大任务按量同步分步骤执行效率也不低啊=____=
yukiir
2019-08-22 21:07:57 +08:00
没有用过,只把多进程的并发问题整明白了。
zachgenius
2019-08-22 21:13:50 +08:00
php 有多线程??? 它只有多进程吧?
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
2019-08-23 09:17:46 +08:00
前几天恰好用到,
然后发现大部分编译都是 nts (非线程安全的),不支持 pthread,
需要自己重新安装 ts (线程安全)版本,并编译 pthread 扩展,
安装好扩展后,发现 pthread 扩展有 BUG,在 linux 运行成功,实际没效果,
一怒之下用 GO 改写,花了 1 天多时间,
内存小了,速度快了,代码简洁了,真香。
hhh798
2019-08-23 11:01:40 +08:00
PHP 写点 crud,渲染个页面就完了,还多线程,想啥呢,那是它该干和能干的事儿吗
salamanderMH
2019-08-23 12:56:59 +08:00
多进程
Wenco
2019-08-24 08:45:53 +08:00
@nioncodotcom 韩天峰听了想打人
zibber
2019-08-30 11:22:28 +08:00
swoole 也是多进程模型
想学多线程 去看看 java 或者 go 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX