首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP :为什么PHP操作大多是同步执行的,而JS操作却不是同步的?

问PHP :为什么PHP操作大多是同步执行的,而JS操作却不是同步的?
EN

Stack Overflow用户
提问于 2018-01-30 08:15:58
回答 1查看 198关注 0票数 2

如果我们研究一下PHP和JS框架的编写方式,就会发现有很大的不同。JavaScript通常会对可能需要一定时间的操作进行回调/承诺。尽管PHP可以将函数作为参数传递,但它并不常用。

我想以数据库操作为例来说明我的情况:

PHP的雄辩力:

$organization = Organization::where('name', '=', 'test')->first();

Node.JS续写:

代码语言:javascript
复制
Organization.findOne({where: {name: 'test'}})
    .then(function (organization) {
            // Organization has been fetched here
        }
    );

正如您所看到的,Sequelize使用承诺来实现操作异步。然而,PHP的口才却并非如此。

除了框架基准,这是否意味着Node.JS更快/更高效,因为它没有阻塞?还是因为JS是单线程的?也许我有一个错误的认识,这种模式是否在两种语言中都得到了同样的实现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 08:31:55

可以编写阻塞的node.js代码,也可以编写异步PHP代码(请参阅libevent扩展、amphp项目或ReactPHP项目)。两者都不是真正的习语。这意味着它是不典型的,也许不推荐,除非是专门的用例。

PHP可以同步工作,因为在典型的the服务器中,有许多PHP进程同时运行。每次处理一个HTTP请求。

每种型号都有优缺点。例如,如果您正在执行node.js绑定的工作,那么在PHP中做多件事情会更加困难,而在PHP中,您可能需要更多的内存使用以获得更高的并发性,因为通常您可能会在PHP中等待IO,所以大多数PHP进程可能最终会等待。因此,您的CPU使用率最终很低,您有大量PHP进程等待IO,而所有这些进程都在内存中复制您最喜欢的web框架。

Node.js允许构建某些类型的应用程序,这些应用程序在PHP中很难实现,因为没有共享内存空间。但是,如果您的node.js应用程序需要超越单个进程,那么这种优势最终可能会变得不那么重要。

总之,这是一个非常宽泛的问题。在某些方面,node.js和PHP都可以处理类似的用例,但是当用例变得更有异国情调时,两种用例中的一种可能更好。

如果你主要是一个构建web应用程序的人,你不会期望大规模的网络应用程序,那么你所追求的可能并不重要。

因此,最终哪个是更好的选择取决于您的用例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48516796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档