PHP到底是单进程还是多进程?
php在web上运行是单进程的,具体原因如下:
1、PHP是一个单线程的脚本开发语言,它常在Web开发及系统集成中出现。PHP是单进程单线程的,当处理复杂的业务的时候我们会发现他串行执行命令的时候CPU、磁盘、内存等利用的都很低有很多时候都是在排队等待,有的时候我们想并发的让他去执行一批任务然后一起拿解决结果是一件很痛苦的事情(自己用pthread或者其他方式才能解决,但是这很痛苦)开发语言一直在升级变化适应需要。另外,可以考虑通讯使用Swoole。
2、解决方案如下:分前后端,前端可以通过消息中间件,同步、异步 调用一个或多个接口。但是socket的扩展确确实实不咋好用。不是普通小企业能做的出来的。
怎样用VFP做网页编程,或将VFP程序在网上运行?
严格的说只要支持socket 的 都可以做网站的服务器. 所以 vfp 可以做网站后台 座椅额vfp程序 插入一个ActiveX控件 监听80 端口 , 分析获取的请求, 结果运算将结果返回给请求方浏览器, 但是实践过程中碰到以下问题,
1 vfp 不支持 utf8 编码
2 vfp 为单线程 ,不支持并发, 可以用调用子程序的方法来"伪并发" 但是效率很低 所以 做一些很小的 并发要求不高的项目还是可以试一下的 大的项目还是用主流的网站开发工具来实现把, 如果一定要用到 VFP 就把vfp 编译成COM 给php 调用吧
node相比传统服务端技术栈差在哪里?
我专业前端做了很多年了,对js不能说是感情浅。但是node做后端,我还是觉得宁可重学一门后端语言也不会冒这个险,除非我干完项目拿钱走人别人去维护。我也知道一个大银行不是国内的,前几年被哪个头脑发热的技术牛人用js做了微服务,—后来项目用java重写了。第一, node没有多线程,以至于cpu-bound 任务是不可能的,如果没有守护程序和 load balance 来做服务程序去响应微小的负荷也是冒险。第二,node 如果不用 async 写出来的代码就是 callback hell, 如果再没有typescript, 维护起来是个噩梦。callback 是解决阻塞问题,但泛滥了就恶心了。 第三,也别想着维护三四年了,npm还没干什么就引用几十万个库了,有的库也就10行代码,库质量差,寿命短,真用的复杂库,几年后依赖的库有些已经不存在了。第三还是线程问题,别告诉我你多小的程序都配一个redis,部署和安全都是头痛问题-没有线程技术就无法共享数据缓冲数据。
总结:用nodejs做后端很作死。nodejs 在后端说白了只是一个高级的event bus, 一无是处。
其实这根本不是技术栈的问题,而是node工程师没有后端经验的问题。如果有的话,会仅限于node吗?语言差距根本不是问题,语言本身就是工具,重点应该去考虑不要有太多异构,维护起来太麻烦。还要考虑开发者群体。node最适合的地方还是提供小型的工具服务,前端工程师不用去了解太多的后端知识,只要会基础的数据库读写,缓存的使用就能解决的问题。