使用非线程安全php的Nginx。。。我可以在坚持时假设没有竞争条件编码吗?

使用非线程安全php的Nginx。。。我可以在坚持时假设没有竞争条件编码吗?,php,nginx,race-condition,event-driven,Php,Nginx,Race Condition,Event Driven,我可能误解了nginx是事件驱动的,而不是进程驱动的,因此我们没有像Apache那样在每个线程中都使用mod_php。我假设,因为我有一个php cgi实例在为所有nginx工作线程运行,所以所有php执行都是同步的。这是否意味着当我从数据库访问对象时,在保存数据时不必担心竞争条件 我不确定我的想法是否正确,或者我完全偏离了方向 谢谢。我不熟悉web编程/数据库/web服务器事件驱动意味着应用程序坐在那里等待事件驱动接下来发生的事情。典型的事件是各种形式的鼠标或键盘活动 相反,过程驱动(通常是过

我可能误解了nginx是事件驱动的,而不是进程驱动的,因此我们没有像Apache那样在每个线程中都使用mod_php。我假设,因为我有一个php cgi实例在为所有nginx工作线程运行,所以所有php执行都是同步的。这是否意味着当我从数据库访问对象时,在保存数据时不必担心竞争条件

我不确定我的想法是否正确,或者我完全偏离了方向


谢谢。我不熟悉web编程/数据库/web服务器

事件驱动意味着应用程序坐在那里等待事件驱动接下来发生的事情。典型的事件是各种形式的鼠标或键盘活动

相反,过程驱动(通常是过程性编程)仅仅意味着有一个程序在监视事物,不断地搅动它应该做的任何事情

您可以同时编写这两个代码,但这样做是一项高级练习——或者至少有人这样认为

现在,种族条件的大问题实际上是关于什么样的纠缠可能发生的问题。对于数据库,这里有一个完美的例子:如果在全局变量中编写返回错误状态代码,并且代码中的活动之间存在任何时间重叠,这通常发生在事件驱动环境中,但也可能发生在纯过程编程中,那么您可能会得到错误的错误消息。想象一下,如果一个线程发生了错误,而一个更快的线程没有错误,但是更快的线程随后出现,并将状态设置为success;线程安全编程可以避免一个条件。这只是竞赛条件的一个例子

只要每个线程的操作都是独立的,您本身就没有竞争条件-这完全取决于应用程序的逻辑及其需求-这里没有人可以告诉您它们可能是什么,只有开发人员。。。这是航空公司预订系统吗