美文网首页
信号与信号量的区别

信号与信号量的区别

作者: 吕艳凯 | 来源:发表于2019-11-28 15:29 被阅读0次

           Linux提供了以信号传递进程间消息的机制,Nginx在管理master进程和worker进程时大量使用了信号。什么是信号?它是一种非常短的消息,短到只有一个数字。在中文译名中,信号相比下文将要介绍的信号量只少了一个字,但它们完全是两个概念,信号量仅用于同步代码段,而信号则用于传递消息。一个进程可以向另外一个进程或者另外一组进程发送信号消息,通知目标进程执行特定的代码。

           信号量与信号不同,它不像信号那样用来传递消息,而是用来保证两个或多个代码段不被并发访问,是一种保证共享资源有序访问的工具。使用信号量作为互斥锁有可能导致进程睡眠,因此,要谨慎使用,特别是对于Nginx这种每一个进程同时处理着数以万计请求的服务器来说,这种导致睡眠的操作将有可能造成性能大幅降低。

    信号量提供的用法非常多,但Nginx仅把它作为简单的互斥锁来使用。

    相关文章

      网友评论

          本文标题:信号与信号量的区别

          本文链接:https://www.haomeiwen.com/subject/ynlmwctx.html