Without knowing anything about what the code does it's hard to say whether synchronization measures are needed. Generally, you need to synchronize accesses to mutable, shared data. If the
thread doesn't use any, then there's no need to synchronize. Furthermore, synchronizing all of the run method is probably overkill, but it's impossible to say without seeing the code.