Это немного теоретический вопрос, исходящий от кого-то очень неопытного в программировании и серверах, но здесь идет.
Если у меня есть файл PHP, хранящийся на сервере, что произойдет, если несколько человек начнут получать доступ к этому скрипту одновременно? Делать несколько запросов стек или их можно обрабатывать параллельно? Что я должен искать, чтобы лучше понять, как работают серверы?
Я надеюсь в этом есть смысл!
Например, веб-сервер (Apache, например) может обрабатывать несколько запросов одновременно (по умолчанию для Apache 200 или 400) .
Если запросы соответствуют ситуациям, доступным только для чтения, не должно быть никаких проблем: несколько процессов могут одновременно просматривать один и тот же файл – и если этот файл является скриптом PHP, несколько процессов могут выполнять его в одно и то же время.
Если ваш скрипт запрашивает базу данных, не должно быть слишком много проблем: создаются базы данных для работы с ситуациями параллелизма (даже если считывание масштабируется лучше, чем записи, которые, возможно, придется укладывать в стек, если они изменяют одни и те же данные) .
Если ваш скрипт пытается записать файл, вы должны поместить некоторые блокирующие механизмы на место (например , с помощью flock
) , чтобы этого избежать; как следствие, каждый процесс будет ждать, пока не будет другой записи в файл, прежде чем писать.
Это в значительной степени не проблема, так как современные операционные системы с удовольствием позволят нескольким процессам одновременно считывать данный файл. (т. е. они «обрабатываются» параллельно).
Однако, если данный файл должен быть написан несколькими сценариями одновременно, тогда PHP будет эффективно «стекать» страницы, которые пытаются получить доступ к записи, пока файл не станет доступен снова.