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