método sincronizado ou usar spring @transactional?

Eu tenho um método que será usado para enviar e-mail. Eu quero bloquear esse método para que apenas um segmento pode acessá-lo por tempo e o restante pool simultaneamente. devo sincronizar o método ou usar spring @transactional PROPAGATION_REQUIRED?

na minha camada de serviço
 //each time use new thread to send out email
  public  void sendThroughSMTP(List<String> emails,String subject,String content){

            //each time will open and sent through port 25.  dont u think this will caused too many threads spawned?
            BlastEmailThread blastEmailThread = new BlastEmailThread(emails,subject,content);

            blastEmailThread.start();


}

questionAnswers(6)

yourAnswerToTheQuestion