Nginx с не-потокобезопасным php ... могу ли я сохранять код при условии отсутствия условий гонки при сохранении?

Я мог бы неправильно понять, что значит для nginx быть управляемым событиями, а не управляемым процессом (таким образом, у нас нет mod_php в каждом потоке, как Apache). Я предполагаю, что, поскольку у меня запущен 1 экземпляр php-cgi для всех рабочих потоков nginx, все исполнения php будут синхронными. Означает ли это, что когда я получаю доступ к объектам из базы данных, мне не нужно беспокоиться о состоянии гонки, когда дело доходит до сохранения данных?

Не уверен, что у меня правильное мышление или я совершенно не в себе.

Благодарю. Я новичок в веб-программировании / базы данных / веб-серверах

1 ответ

Решение

"Управляемый событиями" означает, что приложение "сидит там", ожидая событий, чтобы управлять тем, что происходит дальше. Типичные события - это различные формы активности мыши или клавиатуры.

Напротив, "управляемый процессом" (часто "процедурное программирование") просто означает, что есть программа, "следящая" за вещами, постоянно работающая над тем, что она должна делать.

Вы МОЖЕТЕ одновременно писать код, но это "сложное упражнение" - или, по крайней мере, некоторые так думают.

Теперь большая проблема условий гонки - это вопрос о том, что может произойти. С базами данных, вот отличный пример: если вы кодируете свой статус ошибки возврата в глобальном переменном и есть ЛЮБОЕ временное перекрытие между действиями в вашем коде (часто это происходит в средах, управляемых событиями, но может происходить и в чисто процедурном программировании), вы может получить неправильное сообщение об ошибке. Представьте, что у потока, который вызвал что-то, была ошибка, и у более быстрого потока не было ошибки, но более быстрый поток появился позже и установил статус в успех; есть условие, которого "поточно-ориентированное" программирование избежало бы. Это всего лишь один пример "состояния гонки".

До тех пор, пока действия каждого потока независимы, у вас самих нет условий гонки - все зависит от логики приложения и его потребностей - и никто здесь не может сказать вам, кем они могут быть, только разработчик! ... Это система бронирования авиабилетов?...

Другие вопросы по тегам