线程交互

(1)在线程中停止另一个线程

    thread.stop();   强制停止  (不安全)

            由于stop的时候线程可能处于各种状态,强制stop可能导致无法预测的情况出现,于是这个方法已经被弃用了。

    thread.interrupt();   线程打断      (目前来说是最安全的)

            并不会真的打断该线程运行,只是会给线程一个interrupt的标志,该线程会继续运行。这个方法的作用是告诉该线程我希望你停止运行,如果要停止该线程,可以在该线程中判断interrupt标志,如果interrupted,则返回想要的数据。

线程交互_第1张图片

Thread.interrupted();  静态方法

            判断当前线程是否处于打断状态,如果interrupt为true,则会修改为true.


(2) wait()

        wait()和notify()相对使用,都是同一个对象的motior来调用这两个方法。

线程交互_第2张图片
判断String是否为空,为空调用对象的motior.wait(),直到String赋值后调用对象的motior.notify(),线程回继续执行wait()之后的代码。while保证健壮性

(3)join()

        在A线程中条用 线程B.join(),表示A线程现在需要等待B线程执行完了之后,再来跑A剩下的代码。把两个并行的线程变成了一个有顺序的线程队列

你可能感兴趣的:(线程交互)