coroutines in python

An interesting feature of python: support for coroutines: http://www.python.org/dev/peps/pep-0342/

 

coroutines allow suspending one routine and switching to another and then resuming from the same point. It can be achieved with multithreading with the following pseudo-code

 

routine1 ():

  while true:

    //do something

    raise event2

    wait event1

    //continue execution when routine2 raises event1

 

routine2 ():

  while true:

  //do something

  raise event1

  wait event2

  //continue when routine 1 raises event2

 

So these 2 routines advance passing control to one another and continuing execution from the point where it left the last time. The problem is we use 2 threads where only one is executing in any point of time.

 

In python it's possible to use "yield" to do the same in one thread, and also to pass values between the coroutines.

 

More about coroutines can be found here: http://en.wikipedia.org/wiki/Coroutine

Thank you for your interest!

We will contact you as soon as possible.

Send us a message

Oops, something went wrong
Please try again or contact us by email at info@tikalk.com