线程间交互

一个线程如何结束

thread.stop被废弃:因为强制关闭线程,不可预期

thread.interrupt:把线程标记为终止,需要手动检测线程是否结束isInterrupted(),线程内部外部都可以

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    //擦屁股
    retuen;
    e.printStackTrace();
}

如果线程里有这种睡眠代码,外部调动interrupt会直接catch

wait、notify、notifyAll

object方法,通知monitor自己暂时等待还是唤醒,等待会把锁释放自己进入等待,notify会唤醒等待区的一个对象,notifyAll会唤醒所有,这些方法其实都是锁的对象在调动

join

thread.jion():在 此线程结束之前不继续进行下一行代码

yield

暂时降低此线程优先级