php的信号灯实现 也许Shared Memory函数可以一用,但是还是觉得土了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在phpbuilder里面的http://www.phpbuilder.com/snippet里面曾经看到过一个php监视系统进程的类,但是使用php5写的,在linux下的.php是单进程的,统称php里面别人说得多进程都是通过socket搞的,好资源,没有意义.如果真的要做,可以通过iframe来实现, 一个页面中加入几个iframe,不同iframe通过javascript进行通信,有主页面来更新和控制这些iframe.每次有变化,刷新某个iframe,后frame自动刷新.或者xmlhttp也可以,也是要javascirpt来协调. 重新问一次吧:比如有个访问计数器文件要更新,里面只放了一个自然数某个php网页被访问时就读取这个数并加1再写进去。看来很简单,但是由于httpd是多线程的,比如线程1读出数为999,它正准备写1000进去,这是线程2也读了个999出来,线程1往里写了1000,而线程2也往里写了1000。本来应该文件中应该是1001的,但是由于两个线程没有协调,造成错误记录。所以信号灯就是协调这些http线程的。关键是用什么当作信号灯。 使用全局变量或者Process Control Functions可能能满足你的要求~~~` Process Control Functions只能用在unix系统上全局变量好像没有用吧? 不知道shared memory在windows下面能不能用实际上这里有一个明确点就是不同的php进程必须从同一个地方获得数值,而且也要把值写到同一个地方去能做取值写值的操作的其实都是守护进程比如文件,是系统在监视的数据库,是DBS在监视的如果不能用锁我觉得可以自己写一个守护进程监听一个端口每次php都从socket读值和写值在这个守护进程里做同步和并发的操作但是正如hahawen(变态的大龄青年)所说,耗资源是没商量的 “其实都是守护进程比如文件,是系统在监视的数据库,是DBS在监视的”这个说法真的很搞笑。完全是曲解了daemon的含义。好像写文件写数据库而访问磁盘是应用程序自己的事,系统或DBS只是个警察,负责维持一下秩序。守护进程与信号灯是完全两马事。从深层次讲,信号灯不光是操作系统的事情,而且必须要和硬件平台,比如CPU,或者时序控制器之类的东西结合起来才能实现。我们之所以不需要使用CPU或其他硬件来完成信号灯,是因为操作系统已经将其功能进行了适当的封装。我这个问题换个方式是问,php该如何访问操作系统(windows和unix)的进程信号灯。 一个论坛 倒计时(天数)不会做,高手帮忙 图片居中 关于数据库链接包含到文件 引用的问题 想自学php,请各位大侠帮忙推荐指导一下…… 帮忙写条语句 PHP提交的数据无法写入数据库 急:为什么我的php显示中文时为乱码啊?? php通过com链接数据库的问题!? 倒记时和IP的两个问题, 检测是否存在文件 关于IE缓存处理问题,各位老大帮帮忙呀!!!
比如有个访问计数器文件要更新,里面只放了一个自然数
某个php网页被访问时就读取这个数并加1再写进去。看来很简单,但是由于httpd是多线程的,比如线程1读出数为999,它正准备写1000进去,这是线程2也读了个999出来,线程1往里写了1000,而线程2也往里写了1000。本来应该文件中应该是1001的,但是由于两个线程没有协调,造成错误记录。所以信号灯就是协调这些http线程的。关键是用什么当作信号灯。
全局变量好像没有用吧?
就是不同的php进程必须从同一个地方获得数值,
而且也要把值写到同一个地方去
能做取值写值的操作的
其实都是守护进程
比如文件,是系统在监视的
数据库,是DBS在监视的
如果不能用锁
我觉得可以自己写一个守护进程
监听一个端口
每次php都从socket读值和写值
在这个守护进程里做同步和并发的操作但是正如hahawen(变态的大龄青年)所说,
耗资源是没商量的
比如文件,是系统在监视的
数据库,是DBS在监视的”这个说法真的很搞笑。
完全是曲解了daemon的含义。
好像写文件写数据库而访问磁盘是应用程序自己的事,系统或DBS只是个警察,负责维持一下秩序。守护进程与信号灯是完全两马事。从深层次讲,信号灯不光是操作系统的事情,而且必须要和硬件平台,比如CPU,或者时序控制器之类的东西结合起来才能实现。我们之所以不需要使用CPU或其他硬件来完成信号灯,是因为操作系统已经将其功能进行了适当的封装。我这个问题换个方式是问,php该如何访问操作系统(windows和unix)的进程信号灯。