首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java对信号的处理

Java对信号的处理

原创
作者头像
IT工作者
发布2022-05-06 19:35:15
发布2022-05-06 19:35:15
8900
举报
文章被收录于专栏:程序技术知识程序技术知识

本文主要包括Java如何处理信号,直接上代码。

1. 实现SignalHandle

代码语言:javascript
复制
package com.chzhao.SignalTest;

import sun.misc.*;

@SuppressWarnings("restriction")
public class TestSignal implements SignalHandler {

    public void handle(Signal arg0) {
        System.out.println(arg0.getName() + "is recevied.");
    }
}

2.主函数部分

代码语言:javascript
复制
package com.chzhao.SignalTest;

import sun.misc.*;

public class App {
    @SuppressWarnings("restriction")
    public static void main(String[] args) {
        TestSignal handler = new TestSignal();
        Signal.handle(new Signal("TERM"), handler);
        Signal.handle(new Signal("INT"), handler);
        Signal.handle(new Signal("USR1"), handler);
        Signal.handle(new Signal("USR2"), handler);
        for (;;) {
            System.out.println("do something");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

这里面注册了4个信号。

在Linux下支持的信号(具体信号kill -l命令查看):

SEGV, ILL, FPE, BUS, SYS, CPU, FSZ, ABRT, INT, TERM, HUP, USR1, USR2, QUIT, BREAK, TRAP, PIPE

在Windows下支持的信号:

SEGV, ILL, FPE, ABRT, INT, TERM, BREAK

备注:通过k8s结合java支持的信号处理eureka做到服务优雅升级

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档