V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fkbd
V2EX  ›  问与答

想到一个很奇怪的问题:如果 A、B、C 提交的参数不同,同时访问同一个 php 的文件,那么 php 是同时处理这三个还是按先后顺序来的?

  •  
  •   fkbd · 2015-04-29 17:54:17 +08:00 · 2622 次点击
    这是一个创建于 3289 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7 条回复    2015-04-29 22:55:39 +08:00
    111111111111
        1
    111111111111  
       2015-04-29 18:07:25 +08:00 via Android   ❤️ 1
    这要服务端决定吧
    august
        2
    august  
       2015-04-29 18:19:21 +08:00   ❤️ 1
    你怎樣“同時”訪問一個 php file?
    msg7086
        3
    msg7086  
       2015-04-29 18:43:56 +08:00   ❤️ 1
    建议学习一下多核、多线程、操作系统、时间片之类的知识。
    raincious
        4
    raincious  
       2015-04-29 18:47:47 +08:00   ❤️ 1
    PHP是单线程的。

    因此在一个单线程/进程的服务器上,请求会依照到达顺序一个个处理。
    而在一个多线程/进程的服务器上,则由服务器仲裁,将请求分别发送给不同的线程处理,最后递交给一个PHP处理过程。

    但是PHP自己是单线程的,因此不在乎请求的到达顺序。倒是数据库/缓存那边可能会出现冲突,如果必要需要用到锁。
    raincious
        5
    raincious  
       2015-04-29 18:50:48 +08:00   ❤️ 1
    @raincious 以上只是PHP作为Nginx或Apache等HTTP服务器的处理器时的情况,如果你使用PHP直接写了一个Socket服务器,那么这些并发的请求如何处理是由你自己决定的。
    julyclyde
        6
    julyclyde  
       2015-04-29 20:31:32 +08:00   ❤️ 1
    可以是任何顺序,也可以是交错执行
    换句话说就是你不能假设和依赖“顺序”这个东西
    yakczh
        7
    yakczh  
       2015-04-29 22:55:39 +08:00   ❤️ 1
    三个进程,取决于cpu调度算法, 如果是多个核心,那就各运行各的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3320 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.