当前位置: 首页 > wzjs >正文

今天新闻摘抄十条seo排名优化表格工具

今天新闻摘抄十条,seo排名优化表格工具,做系统后之前网站怎么找回,品牌建设的基本原则信号 信号描述 信号的共性: 简单不能携带大量数据满足某一特定条件才发送 信号的特质: 信号软件层面的中断,一旦信号产生,无论程序执行到什么位置,必须立即停止,处理信号,处理结束后&#xff…

信号

信号描述

  • 信号的共性:
    1. 简单
    2. 不能携带大量数据
    3. 满足某一特定条件才发送
  • 信号的特质:
    • 信号软件层面的中断,一旦信号产生,无论程序执行到什么位置,必须立即停止,处理信号,处理结束后,再继续执行后续指令。
    • 所有的信号的产生和处理都是由内核完成。
    • 信号的实现手段导致信号有很强的延时。对用户而言依然感觉不到

信号相关的概念

  • 未决:
    • 产生与递达(处理)之间的状态,该状态主要受阻塞(屏蔽)影响。
  • 递达:
    • 内核产生信号后递送并且成功到达进程。递达的信号会被内核立即处理。
  • 信号处理方式:
    1. 执行默认动作。
    2. 忽略(丢弃)。
    3. 捕捉(调用用户指定的函数)。
  • 阻塞信号集:
    • 本质:位图。用来记录信号的屏蔽状态。
    • 该信号集中的信号,表示成功被设置屏蔽。再次受到该信号,其处理动作将延后至解除屏蔽。此期间该信号一直处于未决态。
  • 未决信号集:
    • 本质:位图。记录信号的处理状态。
    • 该信号集中的信号表示信号已经产生但尚未被处理。

信号四要素

  • 信号使用之前,必须确定四要素再使用。
  1. 编号
  2. 名称
  3. 事件
  4. 默认处理动作
  • 使用命令kill -l查看 Linux 系统中支持的所有信号。
    1. SIGKILL 和 19) SIGSTOP信号,不允许忽略和捕捉,只能执行默认动作,不能将其设置为阻塞。

信号产生

  1. 按键产生
    • Ctrl + c -> 2) SIGINT(终止/中断)
    • Ctrl + \ -> 3) SIGQUT(退出)
  2. 系统调用产生
    • alarm() -> 14) SIGALRM
  3. 软件条件产生
    • alarm() -> 14) SIGALRM
    • setitimer() -> 14) SIGALRM
  4. 硬件异常产生信号
    • 段错误:内存访问异常 -> SIGSEGV
    • 浮点数例外:除零 -> 8) SIGFPE
  5. 命令产生
    • kill 命令

kill 函数、命令产生信号

#include <signal.h>int kill(pid_t pid, int sig); // 发送信号给一个指定的进程
参:pid:> -1:发送信号给指定进程。= 0:发送信号给跟调用 kill 函数的那个进程,处于统一进程组的进程。< -1:取绝对值,发信号给所有该组的组员。-1:发送信号给有权限发送的所有进程。sig:信号编号返回值:成功:0失败:-1,errno

alarm函数产生信号

  • 每个进程有且仅有唯一的一个闹钟
unsigned int alarm(unsigned int seconds); // 设置定时,发送 SIGALRM 信号
seconds:定时的秒数
返回值:上次定时剩余时间。不会出错。
  • 使用 time 命令查看程序执行消耗的时间。
  • 实际时间 = 用户时间 + 内核时间 + 等待时间
  • time ./alarm > out —— 程序优化的瓶颈在 IO

信号集操作函数

#include <signal.h>sigset_set 自定义信号集int sigemptyset(sigset_t *set);
清空自定义信号集int sigfillset(sigset_t *set);
将信号集全部置1int sigaddset(sigset_t *set, int signum);
将一个信号添加到信号集int sigdelset(sigset_t *set, int signum);
将一个信号从信号集中清除以上四个函数返回值:
成功:0  失败:-1,errnoint sigismember(const sigset_t *set, int signum);
判断一个信号是否在集合中
在:1
不在:0

操作信号屏蔽字

  • 设置屏蔽信号、接触屏蔽,都使用 sigpromask
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
参:how:SIG_BLOCK: 设置阻塞SIG_UNBLOCK:解除屏蔽SIG_SIEMASK:用自定义信号集替换 maskset:自定义 set。oldset:保存修改前的 mask 状态,以便将来恢复。
返回值:成功:0  失败:-1,errno
  • 查看未决信号集函数sigpending
#include <signal.h>int sigpending(sigset_t *set);
参 set:传出参数。未决信号集。
返回值:成功:0  失败:-1,errno

信号捕捉

signal 函数

#include <signal.h>typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);1:待捕捉的信号编号。
参 2:一旦捕捉到该信号,执行的回调函数
返回值:

sigacton 函数

  • 注册某一个信号的捕捉时间,指定回调函数。
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);1:待捕捉的信号
参 2:传入参数,指定新的处理方式
参 3:传出参数,保存就有的信号处理方式。
返回值:成功 0  失败:-1,errnostruct sigaction {void     (*sa_handler)(int); 捕捉函数名,复制 SIG_IGN 表示忽略,赋值 SIG_DEF 表示默认动作void     (*sa_sigaction)(int, siginfo_t *, void *); 信号传参。sigset_t   sa_mask; 信号捕捉函数调用期间所要屏蔽的信号int        sa_flags; 通常为 0,使用默认属性void     (*sa_restorer)(void);
};

信号捕捉特性

  1. 捕捉函数执行期间,信号屏蔽字由原来的 mask 改为sa_mask,捕捉函数执行结束,恢复回 mask。
  2. 捕捉函数执行期间,本信号自动被屏蔽(sa_flags = 0)
  3. 捕捉函数执行期间,被屏蔽的信号执行多次,解除屏蔽后只处理一次

借助信号捕捉,完成子进程回收

SIGCHLD 产生的条件

  • 子进程的运行状态发生变化,就会给父进程发送 SIGCHLD
http://www.dtcms.com/wzjs/463484.html

相关文章:

  • 做网站的伪原创怎么弄产品推广方式及推广计划
  • 成都 网站建设旅游网站的网页设计
  • 网站功能架构图怎么做名风seo软件
  • 北京市住房和城乡建设委网站百度一下百度主页度
  • 山西做网站的企业上海快速排名优化
  • 怎么百度上搜到自己的网站安卓手机优化神器
  • 做网站按钮淘宝seo关键词的获取方法有哪些
  • 网站做淘宝客还行吗游戏推广话术
  • 上海网站建设yes404bt磁力在线种子搜索神器下载
  • 网站建设关键字优化舆情监测系统
  • 网站服务器租赁合同网站关键词优化系统
  • 北京手机网站网站排名优化首页
  • wordpress网站存放在手机百度搜索app
  • 网站建设推广优化seo企业推广案例
  • 四川住房城乡和城乡建设厅网站企业管理培训免费课程
  • h5个人网站源码免费crm客户管理系统
  • 网站推广协议网站推广的途径有哪些
  • 可以看禁止访问网站的浏览器嘉兴seo
  • 服务器和网站维护广告
  • 杭州门户网站开发自动秒收录网
  • 一个网站的后台怎么做职业技能培训网站
  • 南澳做网站怎么做推广和宣传平台
  • 哈尔滨做设计和网站的公司杭州seo服务公司
  • 夹娃娃网站如何做网站首页排名seo搜索优化
  • 公司网站别人做的怎么签合同新网seo关键词优化教程
  • 大良营销网站建设方案营销网站方案设计
  • 哪家网站做的好培训
  • seo网站建设及扩词查数据的网站有哪些
  • 深圳有哪些做网站的公司百度seo官网
  • 怎么做二次元网站源码优化搜索引擎