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

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

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

相关文章
|
4月前
|
Java
线程间通信之Object.wait/notify实现
线程间通信之Object.wait/notify实现
30 0
|
1月前
|
设计模式 Java 调度
多案例理解Object的wait,notify,notifyAll与Thread的sleep,yield,join等方法
多案例理解Object的wait,notify,notifyAll与Thread的sleep,yield,join等方法
43 1
|
9月前
|
Java
notify () 和 notifyAll () 的区别
notify () 和 notifyAll () 的区别
96 0
|
10月前
|
监控
Sleep()和wait()方法的区别
Sleep()和wait()方法的区别
75 0
Zp
wait,notify,notifyAll原理以及实际使用场景
wait,notify,notifyAll原理以及实际使用场景
Zp
170 0
为什么 wait 方法要在 synchronized 中调用?
它们是在有 synchronized 标记的方法或 synchronized 块中调用的,因为 wait 和 nodify 需要监视对其调用的 Object。 大多数Java开发人员都知道对象类的 wait(),notify() 和 notifyAll() 方法必须在 Java 中的 synchronized 方法或 synchronized 块中调用, 但是我们想过多少次, 为什么在 Java 中 wait, notify 和 notifyAll 来自 synchronized 块或方法?
160 0
为什么 wait 方法要在 synchronized 中调用?
|
Java
Java线程中的wait、notify和notifyAll解析
Java线程中的wait、notify和notifyAll解析
94 1
|
自动驾驶 小程序 Java
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
线程 - wait & sleep 区别
线程 - wait & sleep 区别
90 0
|
安全 Java 调度
【小家java】并发编程中wait/notify await/singal notify/notifyAll sleep/yield 的区别以及死锁案例(下)
【小家java】并发编程中wait/notify await/singal notify/notifyAll sleep/yield 的区别以及死锁案例(下)