2013-05-09 2 views
4

Почему у класса Object есть связанные с потоком методы, например wait(), notify(), notifyAll()?Почему класс Object имеет методы Thread?

Нам необходимо расширить Thread или реализовать Runnable, чтобы дать класс типа Thread-like. Так почему же они не были частью любого объекта Thread или Runnable?

+0

Этот вопрос на самом деле не может быть окончательно подотчетен более чем небольшой группе людей. Причина в том, что кто-то где-то в какой-то момент по какой-то причине решил сделать каждый объект переменной условия. – millimoose

ответ

0

Если поток заблокирован на экземпляре объекта, вызов уведомления об этом экземпляре объекта пробудит эти потоки. Таким образом, поскольку блокировка является экземпляром объекта, операции, связанные с этой блокировкой, относятся к экземпляру объекта.

4

Модель параллелизма Java использует блокировки для реализации взаимоисключающего доступа к объектам в многопоточной среде, и блокировки связаны с каждым объектом в Java (типа «Объект»), а не только с Threads.

1) Подождите и сообщите о связи между двумя потоками в Java. И класс Object - это правильное место, чтобы сделать их доступными для каждого объекта, так как это суперкласс всех объектов.

2) Замки становятся доступными на основе каждого объекта, что является еще одной причиной ожидания и уведомления в классе объектов, а не в классе Thread.

+0

Почему dint java предоставляет интерфейс для этой функции? Почему это должен быть класс Object и принудительно использовать эту функцию для всех объектов, когда могут быть случаи, когда все выполнение выполняется в одном потоке – MozenRath

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