2006年07月26日 星期三 23:40
sleep(1000), 让你的线程停止一段时间 On 7/26/06, 柯骥 <zico115 at 163.com> wrote: > > 大家好,目前我在一个项目中用到了python作为脚本语言,其中采用了stackless python来作微线程模拟,遇到了些麻烦。 > 1.我目前的结构是在C的主程序中创建内嵌式的python解释器,然后执行一个脚本。 > 脚本里写上简单的 stackless无限循环语句。 > > #test.py > > import stackless > def run(): > while 1: > print "hello" > stackless.schedule() > > stackless.tasklet(run)() > stackless.run() > > > 现象:死循环执行倒是没有出现什么问题,就是占用的CPU太多,导致其他的C模块无法工作。(这应该是正常的现象,因为解释器此时并没有可能 放弃CPU。) > > 第一个解决办法,用C主程序里的线程创建解释器,然后执行死循环脚本,但是很容易就出现堆栈溢出错误。 > > 第二个解决办法,脚本里的采用py创建系统线程来执行死循环。这样固然是可以解决问题,但那不是我想要的架构我需要在一个系统线程里跑stackless微线程。 > > 我需要采用stackless > 做脚本里的线程模拟,也就是在一个系统线程里跑多个微线程,问题就在stackless调度即使什么也不干光stackless.schedule()也占用了全部的CPU。 > 我确定这里的结构肯定有问题,因为没有线程在给stackless运行。 > > 问题: > 1.怎样把stackless的运行分配到一个系统线程中? > > 2.有什么办法能限制解释器的CPU占用? > 3.或是采用其他的设计方案? > > > 欢迎达人指点一二!! > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -- Richard Chan Wuxi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060726/335d9b34/attachment.html
Zeuux © 2025
京ICP备05028076号