This directory contains some demonstrations of the thread module.

These are mostly "proof of concept" type applications:

Generator.py	Generator class implemented with threads.
bug.py		Demonstrate a bug with importing modules in threads.
find.py		Parallelized "find(1)" (looks for directories).
sync.py		Condition variables primitives by Tim Peters.
telnet.py	Version of ../sockets/telnet.py using threads.
wpi.py		Version of ../scripts/pi.py using threads (needs stdwin).

Coroutine.py	Coroutines using threads, by Tim Peters (22 May 94)
fcmp.py		Example of above, by Tim
squasher.py	Another example of above, also by Tim
