【发布时间】:2012-07-14 22:22:36
【问题描述】:
在我开始进行网络编程之前,我认为这很容易。现在,经过一年的经验,我认为这真的很难,主要是因为并发问题。
因为这是一个非常出乎意料的发现,所以我试图询问我更有经验的朋友(他们制作了一些应用程序,如电子商店等)。具体来说,我问他们是否真的有需要解决的并发问题,否则您有数据变得不一致的危险,他们就像:“嗯,从没想过”。这让我有点害怕自己的理智,甚至一些令人筋疲力尽的网络搜索也没有令人信服地回答这个问题。
因此,我要确保我的思路不会导致一个非常白的房间:
1)假设LAMP框架,apache运行的两个php脚本是否有可能以任何可能的方式重叠执行?
2) 同一个脚本是否可以同时运行多次,并且其实例以任何可能的方式重叠?
3) LAMP 的选择是否重要,或者与今天使用的任何 Web 开发环境一样吗?
4) 如果并发真的是一个问题,而且我不是在编造,有没有什么理论可以帮助我解决这个问题并像这样解决这些问题:“嘿,看,有一个可能的并发问题”,过了一会儿:“嘿,这是X的一个经典例子,可以这样解决”。
5) 为什么程序员倾向于将 Web 开发视为不“洁净”,同时认为他们可以轻松做到这一点? (无需回答这个问题,但这个事实让我很生气,虽然我知道它曾经和我一样)
我知道,从 stackoverflow 的角度来看,这可能是一个非常普遍的问题,但我周围没有人真正有经验可以提供帮助。
【问题讨论】:
-
到目前为止,这一切听起来像是你通常害怕并发。发生了什么让你害怕了?
-
这里没有 PHP 专家,但我猜 Apache 将同时运行相同的 PHP 脚本,以防两个客户端的请求重叠。同步可以通过多种方式完成,例如,在文件系统级别或数据库级别。 Google 用于“乐观锁定”和“悲观锁定”。
-
@jdi 只是我在大学里所做的只是普通的顺序程序,我只听说过锁定、事务等,所以我现在需要学习很多东西才能成为一名优秀的开发人员(除了还有这整个安全的东西......还有很长的路要走:])
-
@VictorSorokin 谢谢你,我会查的。
标签: concurrency lamp