ListeningExecutorService против ExecutorService - PullRequest
0 голосов
/ 05 августа 2020

Я пытался вызвать хранимую процедуру из моего java кода, используя многопоточность, я сделал это двумя способами. Я хочу знать, какой из них правильный и в чем преимущество использования этого первого способа ==========

  try {
                        ExecutorService executorService = Executors.newFixedThreadPool(10);
                        executorService.execute(() -> {
                            StoredProcedureQuery query = entityManager
                                    .createStoredProcedureQuery("procuderName")
                                    .registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(2, Number.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(3, String.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(4, String.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(5, String.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(6, Number.class, ParameterMode.IN)
                                    .registerStoredProcedureParameter(7, Number.class, ParameterMode.IN)
                                    .setParameter(1, "1")
                                    .setParameter(2, 1)
                                    .setParameter(3, "1")
                                    .setParameter(4, "1")
                                    .setParameter(5, "33101")
                                    .setParameter(6, 1)
                                    .setParameter(7, 1);
                            query.execute();
                        });
                    } catch (Exception e) {
                        throw new MyException("Exception ", " excption message ");
                    }

2-й способ =======

 try {
            ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());
            executor.submit(() -> {
                StoredProcedureQuery query = cRtlCarrierPrefFacade.getEntityManager()
                        .createStoredProcedureQuery("procuderName")
                        .registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(2, Number.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(3, String.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(4, String.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(5, String.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(6, Number.class, ParameterMode.IN)
                        .registerStoredProcedureParameter(7, Number.class, ParameterMode.IN)
                        .setParameter(1, "1")
                        .setParameter(2, 1)
                        .setParameter(3, "1")
                        .setParameter(4, "1")
                        .setParameter(5, "33101")
                        .setParameter(6, 1)
                        .setParameter(7, 1);
                query.execute();
            });
        } catch (Exception e) {
            throw new MyException("Exception ", " excption message ");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...