package
0.0.0-20240920062246-d0657495930a
Repository: https://github.com/yigmmk/leetcode.git
Documentation: pkg.go.dev

# README

SIGNAL

同步信号

由程序执行错误引发的信号,包括SIGBUS(总线错误/硬件异常)、SIGFPE(算术异常)和SIGSEGV(段错误/无效内存引用)

Go运行时不会简单地将信号通过channel发送到用户层并等待用户层的异步处理,而是直接将信号转换成一个运行时panic并抛出。

异步信号

同步信号之外的信号都被Go划归为异步信号。异步信号不是由程序执行错误引起的,而是由其他程序或操作系统内核发出的.

  • SIGHUP、SIGINT和SIGTERM这三个信号将导致程序直接退出
  • SIGQUIT、SIGILL、SIGTRAP、SIGABRT、SIGSTKFLT、SIGEMT和SIGSYS在导致程序退出的同时,还会将程序退出时的栈状态打印出来
  • SIGPROF信号则是被Go运行时用于实现运行时CPU性能剖析指标采集

http服务gracefully exit

样例

  • 通过Notify捕获信号
  • 使用http包提供的Shutdown来实现HTTP服务内部的退出清理工作,包括立即关闭所有listener、关闭所有空闲的连接、等待处于活动状态的连接处理完毕(变成空闲连接)等。
  • http.Sever的RegisterOnShutdown方法,用于在服务关闭前清理其他资源、做收尾工作

# Packages

No description provided by the author