Если метод не использует ресурс. Тогда Не очень много (по крайней мере, не значительно, вы избежите утверждений). Вы потеряете производительность только в увеличении сбора мусора, использовании ЦП, создания объектов и т. Д., Но потоки Thread и Cache Flushing будут меньше. Из ресурсов я имею в виду общие объекты, общий ввод-вывод. Но на практике, вероятно, у вас будет по крайней мере один общий ресурс.
Но если метод использует некоторые общие ресурсы, то да, этот метод может быть узким местом. Но есть много шаблонов, с помощью которых вы можете улучшить производительность. Например, если многие потоки только читают такой общий ресурс и лишь немногие записывают/обновляют общий ресурс , тогда вы можете использовать ReadWriteLocks для защиты этой блокировки. Или вы можете использовать шаблон актера ->http://www.slideshare.net/drorbr/the-actor-model-towards-better-concurrency
Также всегда старайтесь использовать параллельные структуры данных для совместного использования ваших общих ресурсов. например ConcurrentHashMap может использоваться очень хорошо, чтобы обмениваться информацией между потоками. Для проблем производителей-потребителей среди Threads попробуйте использовать различные реализации BlockingQueue. Эти структуры данных также ухудшают производительность, но в любом случае вы должны платить цену за точность.
Также помните, что прежде всего сосредоточьтесь на дизайне проблемы, а затем на производительности. если вы получите право на дизайн, у вас будет много лучших способов повысить производительность. Помните, что это общие проблемы параллелизма, и есть уже хорошие шаблоны, чтобы преодолеть многие короткие события.
Если нет блоков синхронизации, нет. Единственное ухудшение производительности, которое вы увидите, связано с переключением контекста потока, но код внутри метода не будет заблокирован. –
@SotiriosDelimanolis Не могли бы вы предоставить ссылку на документацию, где это обсуждается? – achingfingers
У меня нет такой ссылки. Можете ли вы подробнее рассказать о том, что вы подразумеваете под влиянием производительности? –