Код должен быть поточно-ориентированным, да. Если вы решите сделать его поточно-ориентированным, используя synchronized
, то это ваше дело.
MBean, которые вызываются через JMX, будут вызываться контейнером, используя свои собственные потоки, отдельно от потоков вашего собственного кода.