美文网首页
2.0 暂停、恢复线程

2.0 暂停、恢复线程

作者: MC_Honva | 来源:发表于2018-04-08 17:51 被阅读11次

Java 中可以使用suspend()方法来暂停线程运行,通过resume()方法来恢复线程执行

public class MyThread extends Thread {
    private long i;

    public long getI() {
        return i;
    }

    public void setI(long i) {
        this.i = i;
    }

    @Override
    public void run() {
        while (true) {
            i++;
        }
    }

}

public class Run {
    public static void main(String[] args) {
        try {
            MyThread thread = new MyThread();
            thread.start();
            Thread.sleep(2000);
            //A段
            thread.suspend();
            System.out.println("A="+System.currentTimeMillis()+",i="+thread.getI());
            Thread.sleep(2000);
            System.out.println("A="+System.currentTimeMillis()+",i="+thread.getI());
            //B段
            thread.resume();
            Thread.sleep(2000);
            System.out.println("B="+System.currentTimeMillis()+",i="+thread.getI());
            Thread.sleep(2000);
            //C段
            thread.suspend();
            System.out.println("C="+System.currentTimeMillis()+",i="+thread.getI());
            Thread.sleep(2000);
            System.out.println("C="+System.currentTimeMillis()+",i="+thread.getI());
            
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

显然,方法suspend和resume都是已经被废弃的方法

suspend()和resume()缺点

容易造成公共同步对象的独占

对于添加了同步锁的对象,如果在该方法中调用了suspend()方法,将导致对象锁无法释放,其他线程无法访问的问题。

相关文章

  • 2.0 暂停、恢复线程

    Java 中可以使用suspend()方法来暂停线程运行,通过resume()方法来恢复线程执行 显然,方法sus...

  • 「Java并发编程」1.8暂停线程

    【Java并发】1.8暂停线程 暂停线程意味着此线程可以恢复运行。在Java多线程中用suspend()方法暂停线...

  • Java并发(2)

    1.如何暂停或恢复线程 在JDK中提供了以下两个方法(类Thread)用来暂停线程和恢复线程。 Øsuspend方...

  • 1.8暂停线程

    暂停线程意味着此线程还可以恢复运行。在java多线程中,还可以使用suspend()方法暂停线程,使用resume...

  • python-线程的暂停, 恢复, 退出

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法,...

  • Python_线程的暂停, 恢复, 退出

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法,...

  • HiExecutor

    全局通用的线程池组件-HiExecutor 支持任务优先级 支持线程池暂停、恢复、关闭 支持异步任务结果回调 Co...

  • Java线程之开始、暂停、恢复、结束

    封装一个可操作性强的线程,避免重复造轮子

  • java多线程基础学习(二)

    上次学习到了如何停止线程。这次学习暂停线程,线程的优先级,什么是守护线程首先了暂停线程暂停的线程意味着此线程还可以...

  • 2 Java并发主要操作

    核心Java提供对多线程程序的完全控制。 也可以开发一个可以根据您的要求完全暂停,恢复或停止的多线程程序。 有各种...

网友评论

      本文标题:2.0 暂停、恢复线程

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