Q1: EntityManager
лучше всего сравнивать с «старым добрым» Hibernate Session
: единица работы (простое деловое действие, например «вход в систему», «размещение заказа» и т. Д. ). Это не обязательно связано с одной нитью. Вы столкнетесь с проблемами только в том случае, если разные потоки будут выполнять задачи БД, которые зависят друг от друга в рамках одной единицы работы. Вам нужно будет выполнить их синхронно (желательно по порядку в одном потоке). Если, например, у вас есть бизнес-требование для очистки некоторых «старых журналов», когда пользователь входит в систему (что разумно не будет мешать информации друг друга), вы можете прекрасно выполнить его в двух отдельных потоках внутри одной единицы работы.
Q2: Ваше понимание верно. Тем не менее, вы можете создать более одного, но это не имеет никакого смысла и не принесет никаких преимуществ. Это только добавило бы значительные накладные расходы.