[Tutor] Is generator function similar to multi threading?
Michael Sparks
ms at cerenity.org
Fri Mar 16 12:25:48 CET 2007
On Friday 16 March 2007 06:52, ammar azif wrote:
> Is generator function similar to multi threading?
Yes, however unlike threads they are more general. They can be used in two
main ways:
* To generate a sequence of values
* To achieve something similar to multithreading, but without using
operating system threads.
For a tutorial on how to do the latter safely, please take a look at this:
http://kamaelia.sourceforge.net/MiniAxon/
(It's targeted at someone with very basic python skills, since the first
iteration of that tutorial was written for someone who'd learnt python the
previous week)
We use the latter form extremely heavily on our project to great effect. One
of benefits of using a generator over a thread is that you can (as of python
2.5) kill a generator by sending an exception into it.(though this isn't the
reason we're using them)
As a result combining threading and generators makes sense since you can run a
generator inside a thread, and have a mechanism to kill the thread - you send
an exception into the generator.
That said, the primary intended use of generators *is* to generate values. The
fact they're a restricted co-routine however is incredibly handy. (Because
they can only be single layer, it forces them to be simpler, which in turn
makes them much more reusable)
Regards,
Michael.
--
http://kamaelia.sourceforge.net/Home
http://yeoldeclue.com/blog
More information about the Tutor
mailing list