线程的sleep、wait、join、yield如何使用?
sleep:让线程睡眠,期间会出让cpu,在同步代码块中,不会释放锁
wait(必须先获得对应的锁才能调用):让线程进
入等待状态,释放当前线程持有的锁资源线程只有在notify 或者notifyAll方法调用后才会被唤醒,然后去争夺锁.
join: 线程之间协同方式,使用场景: 线程A必须等待线程B运行完毕后才可以执行,那么就可以在线程A的代码中加入
ThreadB.join();
yield:让当前正在运行的线程回到可运行状态,以允许具有相同优先级的其他线程获得运行的机
会。因此,使用yield()的目的是让具有相同优先级的线程之间能够适当的轮换执行。但是,实际中无法保证
yield达到让步的目的,因为,让步的线程可能被线程调度程序再次选中。