The current version of the source is lagging behind and many things have been changed/added in the meantime. I'll soon upload a current version of the source code. If you're interested, drop me mail and I can send you the current source code.
Java is quite fast these days (there are even some examples of applications which are *very* hard to get faster in C, like FFT for example). Especially the new upcoming java6 really flies.
But for emulation, there are some java related (security related) things which slow things down, like array bounds checks and JEmu2 has array access everywhere.
To answer your question about threads: No, the emulators don't run in their own thread; it's all single threaded at the moment.
> I downloaded the source but I haven't taken a look yet. Things like this help
> dispel the myth that the Java interpreter is slow. Granted it's not nearly as
> fast as C/C++ but for an interpreted language it's interesting to see so much
> concurrent emulation occuring simlutaneously in a 3D environment. Does each
> arcade machine run in its own thread?