当前位置:懂科普 >

IT科技

> java resume

java resume

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java resume是什么?让我们一起来了解一下吧!

java resume是java中与线程API有关的方法。resume方法是可以执行恢复线程,其他还有两种方法stop和suspend,它们分别负责终止执行线程和暂停执行线程。

 

java resume

在java程序中,suspend() 和 resume() 两个方法结合应用,suspend()会使线程进入阻塞情况,并且没有自动恢复功能,所以必须其对应的 resume() 被调用,才可以让线程重新进入可执行状态。

suspend() 和 resume() 方法有很多不足之处,比如:

1.如果 suspend() 和 resume() 方法操作不当时很容易造成公共同步对象的独占,使其他线程不能去访问公共对象资源。

2.当 suspend() 和 resume() 方法使用不当时也容易造成数据不同步的情况。

实战演练,具体步骤如下:

package com.rhwayfun.concurrency; import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.TimeUnit; /** * Created by rhwayfun on 16-4-2. */public class DeprecatedThreadMethod {     public static void main(String[] args) throws InterruptedException {        DateFormat format = new SimpleDateFormat("HH:mm:ss");        Thread printThread = new Thread(new Runner(),"PrintThread");        //设为守护线程        printThread.setDaemon(true);        //开始执行        printThread.start();        //休眠3秒,也就是PrintThread运行了3秒        TimeUnit.SECONDS.sleep(3);        //尝试暂停        printThread.suspend();        System.out.println("main thread suspend PrintThread at " + format.format(new Date()));        TimeUnit.SECONDS.sleep(3);        //将PrintThread进行恢复,继续输出内容        printThread.resume();        System.out.println("main thread resume PrintThread at " + format.format(new Date()));        TimeUnit.SECONDS.sleep(3);        //尝试终止PrintThread,停止输出内容        printThread.stop();        System.out.println("main thread stop PrintThread at " + format.format(new Date()));        TimeUnit.SECONDS.sleep(3);    }     /**     * 该任务实现每隔一秒打印信息     */    static class Runner implements Runnable{        public void run() {            DateFormat format = new SimpleDateFormat("HH:mm:ss");            while (true){                System.out.println(Thread.currentThread().getName() + " run at " + format.format(new Date()));                //休眠一秒后继续打印                SleepUtil.second(1);            }        }    }}

标签: resume java
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/0dw7qj.html