为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

简介: 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

明显的原因是 JAVA 提供的锁是对象级的而不是线程级的每个对象都有锁,通过线程获得。如果线程需 要等待某些锁那么调用对象中的 wait() 方法就有意义了。如果 wait() 方法定义在 Thread 类中,线程正在 等待的是哪个锁就不明显了。简单的说,由于 waitnotify notifyAll 都是锁级别的操作,所以把他们定义在 Object 类中因为锁属于对象。

相关文章
|
6月前
|
Java
线程间通信之Object.wait/notify实现
线程间通信之Object.wait/notify实现
63 0
|
6月前
|
设计模式 Java 调度
多案例理解Object的wait,notify,notifyAll与Thread的sleep,yield,join等方法
多案例理解Object的wait,notify,notifyAll与Thread的sleep,yield,join等方法
84 1
|
1月前
|
Java
理解wait()、notify()和notifyAll()
【10月更文挑战第9天】
|
3月前
|
安全 Java 调度
|
Java
notify () 和 notifyAll () 的区别
notify () 和 notifyAll () 的区别
166 0
为什么 wait 方法要在 synchronized 中调用?
它们是在有 synchronized 标记的方法或 synchronized 块中调用的,因为 wait 和 nodify 需要监视对其调用的 Object。 大多数Java开发人员都知道对象类的 wait(),notify() 和 notifyAll() 方法必须在 Java 中的 synchronized 方法或 synchronized 块中调用, 但是我们想过多少次, 为什么在 Java 中 wait, notify 和 notifyAll 来自 synchronized 块或方法?
191 0
为什么 wait 方法要在 synchronized 中调用?
Zp
wait,notify,notifyAll原理以及实际使用场景
wait,notify,notifyAll原理以及实际使用场景
Zp
230 0
|
Java
Java线程中的wait、notify和notifyAll解析
Java线程中的wait、notify和notifyAll解析
136 1
wait和notify 为什么要在synchronized代码块中
wait和notify 为什么要在synchronized代码块中
wait和notify 为什么要在synchronized代码块中
|
自动驾驶 小程序 Java
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?