Почему все объекты Java имеют функции wait () и notify (), и это приводит к снижению производительности?
Каждая ЯваObject
имеет методыwait()
а такжеnotify()
(и дополнительные варианты). Я никогда не использовал их, и я подозреваю, что многие другие не использовали. Почему они настолько фундаментальны, что каждый объект должен иметь их и есть ли снижение производительности при их наличии (предположительно, в них хранится некоторое состояние)?
РЕДАКТИРОВАТЬ подчеркнуть вопрос. Если у меня естьList<Double>
с 100 000 элементов, то каждыйDouble
имеет эти методы, поскольку он расширен отObject
, Но кажется маловероятным, что все они должны знать о потоках, которые управляютList
.
РЕДАКТИРОВАТЬ отличные и полезные ответы. У @Jon есть очень хорошее сообщение в блоге, которое кристаллизовало мои интуитивные чувства. Я также полностью согласен с @Bob_Cross, что вы должны показать проблему с производительностью, прежде чем беспокоиться об этом. (Также как nth la, w успешных языков, если бы это было ударом по производительности, то Sun или кто-то исправил бы это).