1
pursuer 2020-04-27 14:47:26 +08:00
我印象中 notify 好像是唤醒等待线程用的,好像和放弃执行没有关系,而且时间片级别的操作大多依赖操作系统对线程调度的实现,不过如果线程进入等待的话理应可以立即放弃时间片的
|
3
guyeu 2020-04-27 15:01:47 +08:00
notify 是唤醒一个正在等待的线程。。当前线程为什么要放弃执行。。。我猜你想要 join ?
|
4
sudden 2020-04-27 17:09:00 +08:00
是在离开同步代码块之后,才会放弃执行。也就是 synchronized 结束或者 unlock() 之后。
|
5
lanterboy 2020-04-27 17:27:42 +08:00
楼主是想说 yield() 吧
|
6
776491381 2020-04-27 17:32:36 +08:00
notify 和楼主说的好像关系不大,notify 会从等待队列中随机选取一个放入到同步队列中,notify 的时候不会放锁的,会继续执行,执行到 cpu 时间片用完被调度,直到退出同步
|
7
daozhihun 2020-04-27 17:41:35 +08:00
你不会把 java 当成 node js 那样单线程执行的吧?
|
8
pursuer 2020-04-27 18:08:16 +08:00
@yjxjn #2 我工作不是用 Java 的,只是自己做的一些工具是用 Java,因为不能堵塞 UI 线程,涉及网络,文件等耗时操作都会用到多线程
|
9
useben 2020-04-27 18:35:03 +08:00
notify 用于唤醒睡眠等待状态的线程, 而且并不是马上执行的, 而是转换为可被调度状态, 等待 cpu 的调度. 调用 notify 的本线程该吃吃该喝喝
|