java resume

作者:原创时间:2022-04-18
文档

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

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

 

在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);
            }
        }
    }
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java retrofit java reverse() java reverse java rotate java rsa加密 java path java paypal java phoenix java ping java pipeline java rsa公钥加密 java rsa私钥加密 java rtp java runnable java runtime.exec java rxjava java sandbox java script java selector java selenium java resultset java result java rest java requests java partial java request java parser java repeat java parse java pandas java override java render java region java require java resolve java resources java overload java outofmemory java outer java orm