stackless python改prime number一则

修改自http://blog.csdn.net/sedgewick/article/details/6774419基本是直译代码的.

原理我把图拷过来了.

stackless python改prime number一则

代码总体还是很简单的..

import stackless



def generate(ch):

    for i in range(2,1000):

        ch.send(i)    

        

def filter(in_ch,out_ch,primer):

    while True:

        i = in_ch.receive()

        if i % primer != 0 :

            out_ch.send(i)

    

def main(ch):

    cur_ch = ch

    while True:

        prime = cur_ch.receive()

        print prime

        new_ch = stackless.channel()

        stackless.tasklet(filter)(cur_ch,new_ch,prime)

        cur_ch = new_ch       

    

ch = stackless.channel()  

stackless.tasklet(generate)(ch)

stackless.tasklet(main)(ch)



stackless.run()

 

你可能感兴趣的:(python)