fkbd
V2EX  ›  问与答

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

  •  
  •   fkbd · Apr 29, 2015 · 3278 views
    This topic created in 4054 days ago, the information mentioned may be changed or developed.
    7 replies    2015-04-29 22:55:39 +08:00
    111111111111
        1
    111111111111  
       Apr 29, 2015 via Android   ❤️ 1
    这要服务端决定吧
    august
        2
    august  
       Apr 29, 2015   ❤️ 1
    你怎樣“同時”訪問一個 php file?
    msg7086
        3
    msg7086  
       Apr 29, 2015   ❤️ 1
    建议学习一下多核、多线程、操作系统、时间片之类的知识。
    raincious
        4
    raincious  
       Apr 29, 2015   ❤️ 1
    PHP是单线程的。

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

    但是PHP自己是单线程的,因此不在乎请求的到达顺序。倒是数据库/缓存那边可能会出现冲突,如果必要需要用到锁。
    raincious
        5
    raincious  
       Apr 29, 2015   ❤️ 1
    @raincious 以上只是PHP作为Nginx或Apache等HTTP服务器的处理器时的情况,如果你使用PHP直接写了一个Socket服务器,那么这些并发的请求如何处理是由你自己决定的。
    julyclyde
        6
    julyclyde  
       Apr 29, 2015   ❤️ 1
    可以是任何顺序,也可以是交错执行
    换句话说就是你不能假设和依赖“顺序”这个东西
    yakczh
        7
    yakczh  
       Apr 29, 2015   ❤️ 1
    三个进程,取决于cpu调度算法, 如果是多个核心,那就各运行各的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5699 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 03:22 · PVG 11:22 · LAX 20:22 · JFK 23:22
    ♥ Do have faith in what you're doing.