С точки зрения программного обеспечения базы данных не существует такого понятия, как «одно и то же время». Но предположим, что у вас есть многопроцессорная система с двумя сетевыми интерфейсами, и два запроса в конечном итоге обрабатываются с одинаковым тактом ЦП - очень маловероятно (миллиарды циклов в секунду), но не полностью невозможны.
Будет ветка для каждого запроса. Каждый поток должен будет получить блокировку базы данных, которая предположительно находится где-то в памяти. Блокировка будет защищена блокировкой операционной системы, которая не позволит обоим потокам одновременно получить доступ к блокировке базы данных.
Блокировка операционной системы, в конечном счете, также зависит от доступа к памяти. Чтобы получить доступ к памяти, процессор устанавливает на нее блокировку и передает ее копию во встроенный кэш. Другой ЦП не сможет получить к нему доступ, пока не будет завершен первый ЦП. Таким образом, только один ЦП сможет записывать в память, чтобы получить блокировку O / S для блокировки базы данных.
Если по некоторому совпадению оба ЦП запрашивают один и тот же сегмент памяти в одно и то же время иоба пытаются получить блокировку памяти, оба запроса разрешаются «шинным арбитражем», который может работать несколькими способами. Это может закончиться в зависимости от того, какой ЦП физически ближе к линии шины, или может зависеть от того, какой ЦП имеет более высокий ИД устройства.
Приложению, которое использует базу данных, никогда не придется беспокоиться о мельчайших деталях, таких какэто. Об этом заботятся платформа баз данных, операционная система, процессор и, в конечном итоге, физическое оборудование.