Issues(1): Migration Safe Point Generally, we cannot expect states of a suspended thread are consistent. States: program counter, stack, fields of an object and so on. In the case that the thread is suspended in the middle of the execution of a bytecode instruction, they are able to inconsistent. The thread which is going to migrate have to be suspended at the migration safe points. e.g. boundaries of bytecode instructions. The current solution Use nonpreemptive (cooperative) thread scheduler, not preemptive one. Such a type of scheduler ensures the consistency. But there are ways to achieve it with preemptive scheduler: code patching or polling (debugger's techniques)