Java中的关闭挂钩的有用示例?

Java中的关闭挂钩的有用示例?,第1张

Java中的关闭挂钩的有用示例?

你可以执行以下 *** 作:

  • 让关闭挂钩将一些
    AtomicBoolean
    (或易失性布尔值)“ keepRunning”设置为false
  • (可选地,
    .interrupt
    工作线程是否在某些阻塞调用中等待数据)
  • writeBatch
    通过
    Thread.join()
    在工作线程上调用方法,等待工作线程(在你的情况下执行)完成。
  • 终止程序

一些粗略的代码:

  • 添加一个
    static volatile boolean keepRunning = true
    ;
  • 在run()中,你更改为
for (int i = 0; i < N && keepRunning; ++i)    writeBatch(pw, i);
  • 在main()中添加:
final Thread mainThread = Thread.currentThread();Runtime.getRuntime().addShutdownHook(new Thread() {    public void run() {        keepRunning = false;        mainThread.join();    }});

这大概就是我在终端中优雅地“击中Control-C时拒绝所有客户端”的方式。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5146061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存