Threading Support
The garbage collector implemented by the Java runtime support in libgcj
insists on having full control over the creation of threads used by
it. At the moment, it cannot be told about a thread 'after the fact'.
Therefore all Python threads, except for the main thread, using any
PyLucene code must be an instance of PythonThread. A PythonThread
instance is an extension of a Python thread delegating the creation and
initialization of the actual operating system thread to libgcj. There
are in fact two thread objects, one Python, one Java, for the same
operating system thread. The Python and Java runtimes are fully aware
of that thread and view it as one of their own.