我已经读过PHP“可能”的弱点是它如何处理“并发”。只有会话和cookies来保存用户状态的跟踪,怎样才能PHP高精度处理以下情况:PHP为“高流量”网站
多个用户签出与只有1库存股票一个项目(语法错误对不起,但你很可能找到一些图片)
多个用户使用相同的登录信息
多个用户编辑在同一时间同一图像(虽然这种情况很少在现实情况登录到同一用户帐户生活)
,或者需要多线程处理
(我很抱歉,如果我在这里滥用条款)
我已经读过PHP“可能”的弱点是它如何处理“并发”。只有会话和cookies来保存用户状态的跟踪,怎样才能PHP高精度处理以下情况:PHP为“高流量”网站
多个用户签出与只有1库存股票一个项目(语法错误对不起,但你很可能找到一些图片)
多个用户使用相同的登录信息
多个用户编辑在同一时间同一图像(虽然这种情况很少在现实情况登录到同一用户帐户生活)
,或者需要多线程处理
(我很抱歉,如果我在这里滥用条款)
的责任移除这些都不是真正的并发问题。虽然PHP作为一种环境确实缺乏线程能力,但任何使用PHP模块的Web服务器都会有多个线程,每个线程都有自己的活动PHP环境,它们都使用相同的资源。您将遇到Java,.Net,Perl或任何其他Web应用程序语言的这些问题。
据我所知,没有语言使用线程来完成任何这些任务。由于HTTP通讯的无状态特性,饼干会话的每网络语言的中流砥柱,所以无论你使用什么平台,你会看到很多在所有这些相同的策略来处理一个给定的问题。
这些不一定是PHP的问题,任何其他交易。鉴于任何选择的技术,这些都是开发人员需要克服的问题。
不要忘记你的数据库可以做交易和锁定,对于那些需要110%确定没有任何事情发生的情况。 – 2010-01-13 03:04:30
就像所有语言一样,您需要找到某种方式来锁定这些文件。如果你并不熟悉并发性,你可能会从here开始,并对可用的不同方法进行一些研究。
但我真正的问题是这是否真的会成为一个问题。如果你将要进入一个高并发系统,碰撞情况下的损害有多高。如果碰撞的成本非常高,那么可能会将工作外包给已经切断牙齿的人,只是看他们使用的方法。
你有没有听说过数据库事务?正确使用,这些可以解决您的所有问题(顺便说一句,这不是PHP的问题)。
如何这只是PHP的限制 - 这是在计算机科学领域的共同问题。 – 2010-01-13 02:59:20
不java有类处理线程,锁,信号等? PHP有这些吗? (如果它们存在,还没有真正发现它们) – yretuta 2010-01-13 03:01:25
否 - 但它可以访问memcached(可以模拟互斥/信号量)和数据库。 竞争条件和锁定可以在许多层解决,包括PHP,数据库和缓存。 – 2010-01-13 03:05:23