Which variables are shared by the threads?
Why do the threads change the contents of the passed objects?
Can you clone the objects so each thread gets its own version.

Can you make a small...