EntityManager no está destinado a ser utilizado por varios subprocesos. Debe obtener instancias separadas de EntityManager para cada hilo.
En realidad, si usa EJB o Spring, puede usar un EntityManager con ámbito de transacción , que se puede usar desde múltiples subprocesos (es un proxy que delega el trabajo real para separar instancias vinculadas a subprocesos de EntityManager ), pero creo que no es tu caso.