如何在Java程序中处理Ctrl+C

在Java控制台程序中,特别是多线程的Java控制台程序中,中途中断程序可能产生不可预料的结果,比如文件描述符没有关闭,造成文件格式的破坏,或者 远程连接没有关闭,造成远程服务器资源的浪费,等等。所以在程序中添加Ctrl+C处理机制很有必要,下面根据一个例子作一下介绍如何处理:

在 程序中调用RunRuntime.getRuntime().addShutdownHook(Thread handler)就可以添加一个程序退出处理线程handler,一旦发生程序退出,线程handler开始运行。这样就可以在handler的run函 数中进行资源的释放,文件描述符的关闭等操作。下面是一个简单的例子:


上面程序中有一个main线程,一个主线程,一个Ctrl+C处理线程,当发生Ctrl+C时,处理线程设置退出标志,主线程判断到退出标志后自动退出。

每个java应用程序都有一个Runtime类的实例。程序可以同过这个实例与运行环境交互。应用程序只能通过Runtime.getRuntime()来获得Runtime实例,不能自己创建。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值