Следующий код - это образец. Вопрос, основанный на том же, вместо использования преобразования на основе IDE, есть более быстрый способ реализовать, чтобы в будущем произошли изменения, нам не нужно изменять значения снова и снова?
@Override
public String toString() {
return "ContractDTO{" +
"contractId='" + contractId + '\'' +
", contractTemplateId='" + contractTemplateId + '\'' +
'}';
}
Linux не имеет, отдельные потоки для каждого процесса ограничивают, просто предел на общее количество процессов в системе (потоки являются по существу просто процессами с общим адресным пространством на Linux), который можно просмотреть как это:
cat /proc/sys/kernel/threads-max
значение по умолчанию является числом страниц/4 памяти. Можно увеличить это как:
echo 100000 > /proc/sys/kernel/threads-max
существует также предел на количество процессов (и следовательно распараллеливает), который отдельный пользователь может создать, видеть ulimit/getrlimit
для деталей относительно этих пределов.
Это, вероятно, не должно иметь значения. Вы собираетесь получить намного лучшую производительность, разрабатывая Ваш алгоритм для использования постоянного числа потоков (например, 4 или 8, если у Вас есть 4 или 8 процессоров). Можно сделать это с очередями заданий, асинхронным IO или чем-то как libevent.
Получать его:
cat /proc/sys/kernel/threads-max
Для установки его:
echo 123456789 > /proc/sys/kernel/threads-max
123456789 = # потоков
На практике предел обычно определяется стековым пространством. Если каждый поток получает стек 1MB (я не могу помнить, является ли это значением по умолчанию на Linux), то Вы, 32-разрядная система исчерпает адресное пространство после 3 000 потоков (предполагающий, что последний ГБ резервируется к ядру).
Однако Вы, скорее всего, испытаете ужасную производительность при использовании больше чем нескольких дюжин потоков. Рано или поздно Вы получаете слишком много контекстного переключения наверху, слишком много служебное в планировщике, и так далее. (Создание большого количества потоков действительно немного больше, чем ест большую память. Но много потоков с фактическим работа , чтобы сделать собирается замедлить Вас, поскольку они борются в течение доступного процессорного времени)
, Что Вы делаете, где этот предел даже релевантен?
Используйте nbio
неблокирующий ввод / вывод
библиотека или что-то еще, если вам нужно больше потоков для выполнения вызовов ввода-вывода, которые блокируют