NOTE
6.33 Thread.sleep
1. sleep结束后什么时候唤醒 假设某个线程在 2020-01-09 22:47:54 运行上面这段代码,那么他会在 2020-01-09 22:47:55 立马往下执行么? - 答案 不一定,这段代码的意思只是在 2020-01-09 22:47:55 有机会去抢占CPU,而不是获得了CPU并
这是历史学习笔记,可能存在过时或不完整的理解。
1. sleep结束后什么时候唤醒
Thread.Sleep(1000);
假设某个线程在2020-01-09 22:47:54运行上面这段代码,那么他会在2020-01-09 22:47:55立马往下执行么?
- 答案
不一定,这段代码的意思只是在
2020-01-09 22:47:55有机会去抢占CPU,而不是获得了CPU并执行
2. Thread.sleep vs Object.wait
| sleep | wait | |
|---|---|---|
| 使用 | Thread的静态方法。直接调用 | Object类的实例方法。配合sychronized |
| 作用 | 让当前线程暂停执行指定的时间 | 让当前线程等待 |
| 是否释放锁 | 不释放锁 | 释放锁 |
| 是否让出CPU | 是 | 是 |
| 如何唤醒 | 时间到了自动唤醒 | 由notify唤醒 |