PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

PHP是单线程的,那么php单线程的缺点是什么?

一直以来php就是个单进程的程序;虽然php的pthreads扩展早就有了。但是它不够稳定,运行运行着就会莫名其妙的自己挂掉;php的扩展都是C写的,这也就意味着任何一个扩展出现线程竞争资源控制问题都能让整个挂掉

PHP单线程的缺点

1)、函数命名不规范 驼峰法和下滑线,传参位置不一 你知道的

2)、单线程 ; PHP本身,一直以来php就是个单进程的程序;虽然php的pthreads扩展早就有了。但是它不够稳定,运行运行着就会莫名其妙的自己挂掉;php的扩展都是C写的,这也就意味着任何一个扩展出现线程竞争资源控制问题都能让整个挂掉

3)、核心异步网络不支持(当然在linux只有同步非阻塞网络模型)。却少了这个使得很难开发一个能够承受大并发的网络应用。传统的网络模型和io都阻塞的。这样基本的编程的做法就是一个进程(或者线程)响应一个用户链接请求。因此无法完成像实时网游那样需要成千上万网络连接的任务。尽管php也有Libevent、eio扩展对此算是某种程度上面的弥补,但是感觉都不是那么完善

4)、只支持web开发,不方便做 .exe文件,不方便做桌面应用程序. 不方便做手机程序.

5)、不适合做爬虫、自动运行脚本.科学运算项目,这语言基本构架就不适合,虽然有很多方法实现。

6)、后期维护困难。后期提速空间局限性较大。

7)、PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。

在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。

更多PHP相关知识,请访问php中文网!

为什么说php单线程,php单线程的缺点是什么?相关推荐

  1. 单线程读单线程写一个变量是否一定要加锁

    单线程读单线程写一个变量是否需要加锁,刚毕业的时候我会有这样的想法:一个线程只读并没有改变变量的值并不会有两个线程同时写一个变量产生竞态,所以不用加锁,但是工作中长者给我指导都是多线程必须加锁,所以我 ...

  2. python是多线程还是单线程_Python单线程与多线程

    最近一直在学习爬虫的相关知识,目前学习到了单线程.多线程这一块,把自己的学习经历分享出来顺便也做个笔记. 一.单线程操作 单线程操作就是我们日常写代码时的操作,为了比较出和多线程的区别,以下为其对比. ...

  3. cpu多核 node 单线程_node单线程支撑高并发原理(node异步I/O)

    一.node单线程实现高并发原理 众所周知nodejs是单线程且支持高并发的脚本语言.可为什么单线程的nodejs可以支持高并发呢?很多人都不明白其原理,下面我来谈谈我的理解: 1. node的优点: ...

  4. redisserver是什么问题_面试官老是问:为什么采用单线程的Redis也会如此之快?...

    Java面试笔试面经.Java技术每天学习一点 公众号Java面试 关注我不迷路 作者:kaito 来源:http://kaito-kidd.com/2020/06/28/why-redis-so-f ...

  5. redis线程阻塞原因排插_每次面试都要被问:为什么采用单线程的Redis也会如此之快?...

    众所周知,Redis在内存库数据库领域非常地火热,它极高的性能和丰富的数据结构为我们的开发提供了极大的便利. 但我们也听说了,Redis是单线程的,为什么采用单线程的Redis也会如此之快呢?这篇文章 ...

  6. 对Redis单线程的一些看法

    1.先说说redis单线程的优点: 单线程的模型除了减少一些线程上下文切换之外并无其他优点,事实性其实单线程的redis指的只是说处理cmd的流程是单线程的,也就是只有epoll接收到cmd之后,继续 ...

  7. 多线程不能不知道的之单线程和多线程的比较

    早期的计算硬件十分复杂,但是操作系统执行的功能确十分的简单.那个时候的操作系统在任一时间点只能执行一个任务,也就是同一时间只能执行一个程序.多个任务的执行必须得轮流执行,在系统里面进行排队等候. 栗子 ...

  8. C#.多线程 (一)多线程(异步模式)与单线程(同步模式)的应用与区别 举例

    先看网上百度的几张图片: 什么是单线程?单线程工作模式也成为同步模式.其就是在一定状态下只能做一件事情,比如我在18:00-18:30时间段可以做饭. 什么是多线程?多线程工作模式也成为异步模式.其就 ...

  9. 6.Redis单线程为什么这么快?

    线程模型 大家都知道,Redis是单线程的,为什么采用单线程的Redis也会如此之快呢?接下来我们分析其中缘由. 严格来说, Redis Server是多线程的, 只是它的请求处理整个流程是单线程处理 ...

最新文章

  1. poj_3067 树状数组
  2. Android在eoe分享一篇推荐开发组件或者框架的文章
  3. android面试题总结加强版
  4. Linux sftp用法
  5. Eclipse导入工程后显示小红叉叉怎么解决?
  6. 大叔手记(21):汤姆大叔博客园开博100天总结
  7. c#计算长方形的周长和面积公式_Java面向对象练习题之计算圆的面积和周长
  8. 怎样验证软件是否可信?是否被篡改?
  9. 生姜红糖水怎么喝健康呢?
  10. 在某个文件夹中打开 cmd黑窗口
  11. 个人笔记-C#txt文本分割器
  12. android抢qq红包源码,QQ抢红包插件实现,安卓源码,以及详细分析,androidqq抢红包源码,捡代码论坛整理...
  13. 三菱四节传送带控制梯形图_四节传送带控制
  14. 空间频率(lp/mm,cycles/mm,lp/mrad,cycles/mrad)
  15. 华为大数据研发第2轮面试
  16. 【ChatGPT】又一款类ChatGPT工具,讯飞星火认知,不用魔法,现在申请马上就能通过
  17. 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
  18. C++string字符串初始化与使用
  19. unity3d学习指南
  20. 上网速度很慢的若干原因

热门文章

  1. 将指标标签与MicroProfile Metrics 2.0结合使用
  2. JUnit 5测试中的临时目录
  3. spring jaxb_自定义Spring命名空间使JAXB变得更容易
  4. Java 8中的功能接口是什么? @功能注释和示例
  5. 使用JDK 8将收藏转换为地图
  6. Java EE 8 MVC:使用路径参数
  7. 在Hibernate中启用实体和查询缓存
  8. jsf集成spring_Spring和JSF集成:分页
  9. Vaadin和DukeScript中的Hello World
  10. Java文件I / O基础