免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lilyzyp
打印 上一主题 下一主题

请教关于多线程的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2003-12-22 21:30 |只看该作者

请教关于多线程的问题

谢谢大家支持!其实只要动手试一试就可以学到很多东西。
longnetpro 该用户已被删除
22 [报告]
发表于 2003-12-22 23:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
23 [报告]
发表于 2003-12-22 23:38 |只看该作者

请教关于多线程的问题

原帖由 "iamyess" 发表:

浏缆器还是一直处于等待结果出现的状态,也就说,不管有没用 register_shutdown_function,只要你关掉或在浏缆器上点 "停止",那 个循环也就停了,这也就是不能说是后台的原因


不知道是我理解错了还是什么~~~~

实际上如果你了解一下HTTP协议就会发现你这段话的表达是有问题的!

点停止并不终止服务器端的操作。只是终止浏览器的操作。比如让服务器做一个大的运算,等待反馈信息的过程中,你点了“停止”,的确是没有信息反馈了,但不是终止服务器的运算,只是终止了浏览器端从服务器上取回信息。

还有你说的浏览器与服务器线程对应也不正确~~~
实际上如果浏览器与服务器线程对应,那任何服务器都可以用浏览器DoS掉了~
浏览器只是与服务器建立连接、取数据、端开连接。如果还有后续的操作,实际上都需要从新建立连接,取数据,端开连接~~当然,也可以建立长期连接,不过好象很少用~~~

论坛徽章:
0
24 [报告]
发表于 2003-12-22 23:59 |只看该作者

请教关于多线程的问题

原帖由 "longnetpro" 发表:
其实原理应该是这样的:

那个register_shutdown_function注册的函数其实可以理解为是在脚本最后执行,只是该函数不能有输出。服务器端PHP在发送完所有的脚本输出后但还未执行该函数时,就认为这个响应过程结束了?.........


其实我一直想不通的就是PHP能不能用“推”的方法来做~~~~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
25 [报告]
发表于 2003-12-23 00:25 |只看该作者

请教关于多线程的问题

呵呵,你们讨论到register_shutdown_function上边去了,真理是越辨越明的,希望双方不要太执着于自己的对错,只要大家最后搞清楚道理是怎么样的就好了。
回到楼主的问题上来,下午的时候楼主曾经在MSN上找我讨论过,我提供了一个方法,就是php本身不做邮件群发,而是在系统内用其他程序来群发,php做web前台,在系统内做两个程序,一个是群发程序,一个是调度程序,php可以将群发作为一项计划任务的方式写到数据库里,调度程序定时检查,然后视情况运行群发程序,并且还可以做一些管理程序,随时查看群发情况、中断某个群发等等。系统内的程序用c、perl、python等等都可以,另外需要注意的是服务器操作系统的问题,如果是FreeBSD4.x,可能无法使用线程,有个linux线程库可以用,但是我没有写程序用过,仅仅是有一次在mysql上用过,5.x应该就可以了,如果是linux服务器那肯定没有问题。
如果我选择的话,会用linux+python+php来实现。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
26 [报告]
发表于 2003-12-23 00:36 |只看该作者

请教关于多线程的问题

凑个热闹,关于register_shutdown_function的,碰巧今天下午我的同事用zend debuger跟踪了一下pear的执行,显示所有的脚本最后退出之前都会执行register_shutdown_function指定的函数,感觉像是垃圾回收器一样,一定会留到最后来打扫场地。
php manual的解释是:
Registers the function named by function to be executed when script processing is complete
就我对大家的讨论的理解,关键就是在这个complete上,是否包含了非正常complete还是仅仅指正常的complete。
我的理解和longnetpro相同,因为我有一次犯了个愚蠢的错误,执行了一个无限循环,当我发现不对的时候马上就去关闭了浏览器,但是php进程仍然占用了所有的CPU,最后我不得不重启了事。
longnetpro 该用户已被删除
27 [报告]
发表于 2003-12-23 05:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
longnetpro 该用户已被删除
28 [报告]
发表于 2003-12-23 05:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
29 [报告]
发表于 2003-12-23 09:13 |只看该作者

请教关于多线程的问题

longnetpro 解释得还是比较正确

register_shutdown_function,其实还是最后运行而已

你有这样的分析让我开始相信你不是 coder 而是 programer

我当初有这个关掉就停止的错误想法 是从 http 服务器去考虑的

认为 停止 浏缆器 或  关掉,会导致这个进程关掉,也就停了php 的解释

证明不会原来,http server 好象把控制权交给 php ,当然,这时候杀掉 php

进程是会停止循环的

当然,我的第二个问题也就明确的,我的第二个代码 跟第一个没什么分别

但关于对错还是一会事,我差点就受不了这论坛里老是有人文不对题的回答和举例子,就如我在 shukebeita 写的那 oop 是什么样子那帖里,你们真不知道我要说什么吗?我不是说学进程好,也不是说 oop 不好,也不是说 偏学哪一样好
longnetpro 该用户已被删除
30 [报告]
发表于 2003-12-23 09:57 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP