Java线程方法含义
wait(time)和sleep(time)的区别
- wait():在synchronized代码块中执行,调用wait方法,会让出cpu调度,同时释放锁
- sleep():调用sleep方法,会让出cpu调度,但不会释放锁
notify()和notifyAll()的区别
- notify():会随机唤醒一个在等待池中的线程,让其加入锁池去争夺锁权限
- notifyAll():会唤醒所有等待池线程,加入到的锁池中争夺锁权限
yield()函数
- 暗示cpu调度器当前线程让出了cpu,其他线程可以执行任务了,但是其他线程是否会执行任务由cpu调度器决定
interrupt()函数和stop()
- stop():由于安全问题,被废弃
- interrupt():通知线程应该中断了
- 如果线程处于被阻塞状态,那么线程将立即退出阻塞状态,并跑出interruptedException异常.
- 如果线程处于正常状态,那么会将线程的中断标志设置为true.该线程还将正常运行,不受影响