![]() | 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 的本线程该吃吃该喝喝 |