Пружина пн go ниткабезопасность - PullRequest
0 голосов
/ 17 июня 2020

Я изучаю весеннюю загрузку и параллелизм. Я понимаю, что когда весенняя загрузка получает несколько запросов, она запускает несколько потоков для обработки запроса. У меня есть метод, который обращается к mon go. Этот метод сохранит новый someResult (возможно, с некоторыми новыми значениями, установленными вызывающей стороной). Мой вопрос: если есть, скажем, 100 одновременных вызовов моего контроллера загрузки Spring, и я получаю объект someResult, и устанавливаю значения и сохраняю et c, будут ли значения несовместимы?

  public void upsert(SomeResult someResult) {
        String collection = this.SomeResultConfig.getCollectionSomeResultCollection();
        String queryStr = "{testingID : '%s'}";
        queryStr = String.format(queryStr, someResult.getTestingID());
        Query query = new BasicQuery(queryStr);
        List<SomeResult> someResultList = this.mongoOps.find(query, SomeResult.class, collection);
        if (someResult.size() != 0) {
            this.mongoOps.findAllAndRemove(query, collection);
        }
        this.mongoOps.save(someResult, collection);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...