Что будет быстрее: выполнить действие в одном потоке или за 40?

#java #multithreading

#java #многопоточность

Вопрос:

Я провел нагрузочное тестирование с 1 потоком и с 40 потоками. В результате я получил, что действие (пример вставки данных в базу данных) выполняется быстрее в 1 потоке, чем в 40. Хорошо ли это или в 40 потоках это действие должно быть быстрее

Комментарии:

1. Зависит от того, что вы действительно хотите сделать

2. @TheLostMind можете ли вы привести пример, в какой ситуации выполнение в одном потоке происходит быстрее?

3. Вставка данных означает транзакции. Быстрее завершить одну транзакцию с 40 вставками, чем 40 транзакций с 1 вставкой. И вообще, не пытайтесь распараллеливать вставку базы данных.

4. @Marko Topolnik Для каждой вставки существует отдельная транзакция

5. То, что говорит @MarkoTopolnik, относится и к другим операциям ввода-вывода. Интенсивные операции с процессором выполняются лучше, если используется несколько потоков.

Ответ №1:

Зависит от действия. Например, если вы ищете один список массивов, вам не нужно 40, но если вы хотите параллельную обработку нескольких массивов, вы можете использовать несколько потоков