• Net-SNMP是线程安全的吗


    原文地址 : http://www.net-snmp.org/wiki/index.php/FAQ:General_19

    Net-SNMP是线程安全的吗?


      确切的说,不是。不过呢,在多线程管理的应用进程中是能够使用这个链接库的。这一点在REDMAE文件中已经有过详细的叙述。线程(以标准方式封装和发布的),可以概括为下列几点:

      1、在激活任何线程之前调用“snmp_sess_init()”函数。

      这个函数进行MIB的读和解析(这个过程不是线程安全的),也为后来的使用而准备一个会话结构体。

      2、使用snmp_sess_open()函数打开一个SNMP会话,此函数返回一个不透明的会话地址,这个地址本质上独立于任何其它的会话(不考虑线程的话)。

      3、链接库里面没有使用资源锁,这部分应该是应用进程的事儿。

      Net-SNMP代理不是为多线程而设计的。如果把代理库嵌入到一个进程的副代理线程中,并且所有和SNMP相关的活动(包括创建陷阱和解析MIB)都由这一个线程单独来完成,那么会是安全的。

      命令行工具被封装成了Net-SNMP的一部分来发布,其实它是一个简单的单线程应用程序,并且不是为多线程设计的。适应线程的模型留给学生做练习。

      不幸的是,SNMPv3的支持和线程的支持是同时添加的,并且这两件事是平行的发生的,之后再也没有进行过验证多线程下SNMPv3支持的正确性。这样看起来在SNMPv3情况下并不是线程安全的。

    翻译:郝峰波

    mail : fengbohello@qq.com

  • 相关阅读:
    Git 版本导致 clone 故障
    ELK-Stack 最后一次全篇文档
    Elasticsearch 搜索引擎
    Yum -y update 报错
    Linux OOM 自动杀死进程
    MySQL 执行 'use databases;' 时很慢
    DRBD 数据镜像软件介绍
    ELK 日志管理系统,再次尝试记录
    ELK 日志管理系统,初次尝试记录
    iframe与include的区别
  • 原文地址:https://www.cnblogs.com/fengbohello/p/4371612.html
Copyright © 2020-2023  润新知