Python论坛  - 讨论区

标题:Re: [python-chinese] 关于stackless python和C的多线程混合调用问题

2006年07月26日 星期三 23:40

Richard Chan wuxipage at gmail.com
Wed Jul 26 23:40:04 HKT 2006

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号