zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    test
    封装和构造方法
    面向对象
    数组的排序
    UDP编程(八)
    多的是面向对象你不知道的事
    面向对象组合的使用
    类成员的进一步阐述
    面向对象初始
    吾日三省吾身
  • 原文地址:https://www.cnblogs.com/fengbohello/p/4371612.html
Copyright © 2011-2022 走看看