为什么Object类有Thread方法?

为什么Object类有Thread方法?

问题描述:

为什么Object类有线程相关的方法,如wait(),notify(), notifyAll()为什么Object类有Thread方法?

我们需要扩展Thread或者执行Runnable来为类提供线程行为。那么他们为什么不把它们作为ThreadRunnable对象的一部分呢?

+0

这个问题并非真正由一小部分人承担责任。原因在于某个地方出于某种原因某个地方的某个人决定让每个对象成为条件变量。 – millimoose 2013-05-09 08:00:45

如果线程已锁定对象实例,则在该对象实例上调用notify将唤醒这些线程。因此,由于锁是对象实例,因此与该锁有关的操作属于对象实例。

Java并发模型使用锁来在多线程环境中实现对对象的互斥访问,并且锁与Java中的每个对象(类型'Object')相关联,而不仅与线程相关联。

1)Wait和notify是Java中两个线程之间的通信机制。而Object类是正确的地方,使它们可用于每个对象,因为它是所有对象的超类。

2)锁是可用的每个对象的基础上,这是另一个原因等待和通知在Object类而不是Thread类中声明。

+0

为什么dint java为这个功能提供了一个接口?为什么它必须是Object类,并且在可能存在所有执行都在单个线程中完成的情况下强制所有对象都具有此功能 – MozenRath 2014-01-01 21:16:07