美文网首页
java20(多线程--06 停止线程与守护线程与死锁)

java20(多线程--06 停止线程与守护线程与死锁)

作者: 机智的老刘明同志 | 来源:发表于2019-01-17 01:02 被阅读75次

    停止线程:

            stop方法已过时。那么该如何停止线程呢?只有一种,run方法结束

            开启多线程运行,运行代码通常都是循环结构。因此只要能控制住循环就可以让run方法结束,就可以让线程结束。我们可以通过flag的真假来控制线程的运行与结束

            但是有种特殊情况(线程处于阻塞状态时候,他并不会读取flag标记),这时候我们就可以使用interrupt()方法

    守护线程:

            setDaemon  当正在运行的进程都是守护进程,java虚拟机退出    

    死锁: 

            同步中嵌套同步

            例如:创建两个字符串a和b,再创建两个线程A和B,让每个线程都用synchronized锁住字符串(A先锁a,再去锁b;B先锁b,再锁a),如果A锁住a,B锁住b,A就没办法锁住b,B也没办法锁住a,这时就陷入了死锁。 

                

    相关文章

      网友评论

          本文标题:java20(多线程--06 停止线程与守护线程与死锁)

          本文链接:https://www.haomeiwen.com/subject/lftbdqtx.html