php代表;“高流量”;网站
我已经读到PHPs“可能”的弱点是它如何处理“并发性”。由于只有会话和cookie可以跟踪用户状态,PHP如何高精度地处理以下情况:php代表;“高流量”;网站,php,Php,我已经读到PHPs“可能”的弱点是它如何处理“并发性”。由于只有会话和cookie可以跟踪用户状态,PHP如何高精度地处理以下情况: 多个用户使用一个只有一个库存的物品结账(很抱歉,语法错误,但您已经大致了解了情况) 多个用户使用相同的登录详细信息登录到同一用户帐户 多个用户同时编辑同一个图像(尽管这在现实生活中很少发生) 或任何其他需要多线程处理的事务 (如果我在这里误用了术语,我深表歉意)这些对PHP来说不一定是问题。考虑到所选择的任何技术,这些都是开发人员需要克服的问题 用户让他们的库存达
(如果我在这里误用了术语,我深表歉意)这些对PHP来说不一定是问题。考虑到所选择的任何技术,这些都是开发人员需要克服的问题
就像所有语言一样,您需要找到某种方法来锁定这些文件。如果您是并发的新手,您可能会开始研究可用的不同方法 但我真正的问题是这是否真的会成为一个问题。如果您要在一个高并发系统中,那么在发生冲突的情况下,损害有多大。如果碰撞的成本真的很高,那么可能是将工作外包给已经在这方面切牙的人,看看他们使用了什么方法
这些不是真正的并发问题。虽然PHP作为一个环境确实缺乏线程功能,但任何使用PHP模块的web服务器都会有多个线程,每个线程都有自己的活动PHP环境,所有线程都使用相同的资源。Java、.Net、Perl或任何其他web应用程序语言都会遇到这些问题
就我所知,没有任何语言使用线程来完成这些任务。由于HTTP通信的无状态性质,Cookie是会话,是每种web语言的主流,因此无论您使用何种平台,您都会在所有这些语言中看到处理给定问题的相同策略。您听说过数据库事务吗?如果使用得当,它们可以解决您的所有问题(顺便说一句,这些问题不是PHP问题)。如果您的问题是关于事务的,那么答案是肯定的,但这不是该语言本身的特性。事务安全是数据库层(通常是像MySQL这样的关系数据库)的任务 但是如果我读到你的问题,比如“PHP是可伸缩的吗?”,那么答案也是肯定的 PHP尽可能完美地处理“并发”,因为它对应用程序完全隐藏了任何与并发相关的细节,这对于web应用程序来说是一件好事。它使应用程序具有内在的可伸缩性,就像HTTP使“web”具有可伸缩性一样。HTTP是无状态的,所以PHP在某种意义上是无状态的。这允许轻松的横向可伸缩性,例如,在不更改应用程序代码的情况下添加更多硬件(尽管这仍然需要事先提供一些应用程序支持)
查看这些说明。这仅仅是PHP的一个限制吗?这些是计算机科学领域的常见问题。java没有线程处理、锁、信号量等类吗?PHP有这些吗?(如果它们存在的话,还没有真正发现)没有-但是它可以访问memcached(您可以模拟互斥/信号量)和数据库。竞争条件和锁定可以在很多层上解决,包括PHP、DB和缓存。不要忘记,您的DB也可以进行事务和锁定,在这些情况下,您需要110%确定同时不会发生任何事情。