2013-08-23 2 views
1

Действительно ли мне нужно синхронизировать любые методы, если я не создаю нити (исключение является основным). Если да, может кто-нибудь объяснить причину и дать некоторые примеры, пожалуйста.Нужно ли синхронизировать любые методы, если есть только основной поток?

+1

Мне просто интересно, где вы слышали, что вам нужно. Конечно, нет. –

+1

Есть ли GUI? –

ответ

3

Если вы не создали ни одного потока, то нет, вам не нужно использовать ключевое слово synchronized. Это предполагает, что вы не пишете сервлеты или фильтры J2EE или библиотеку, которую могут вызвать другие (которые используют несколько потоков).

0

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

0

Синхронные методы используются, когда вы не хотите, чтобы два потока работали по любому синхронизированному методу за один раз. Если приложение однопоточное, нет точки, которая блокирует и добавляет накладные расходы на синхронизацию.

0

Нет, вы не должны так влиять на производительность. Синхронизация не должна использоваться, если вы делаете все в одном потоке.

+0

Синхронизация в однопоточном приложении не повлияет на производительность. Но это может быть многопоточным. –

+0

@inikolaev Преждевременная оптимизация. –

+0

@ inikolaev в однопоточном приложении не будет никакого контекстного переключателя, но для выполнения синхронизированного блока поток должен иметь блокировку на объекте, который является накладными расходами. – pundit

Смежные вопросы