zoukankan      html  css  js  c++  java
  • Linux企业级开发技术(7)——libevent企业级开发之锁和线程

    编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。

    libevent的结构体在多线程下通常有三种工作方式:

    1、某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。

    2、某些结构体具有可选的锁:可以告知libevent是否需要在多个线程中使用每个对象。

    3、某些结构体总是锁定的:如果libevent在支持锁的配置下运行,在多个线程中使用它们总是安全的。

    为获取锁,在调用分配需要在多个线程间共享的结构体的libevent函数之前,必须告知libevent使用哪个锁函数。

    如果使用pthreads库,或者使用Windows本地线程代码,那么你是幸运的:已经有设置libevent使用正确的pthreads或者Windows函数的预定义函数。

    接口:

    int evthread_use_pthreads(void);

    函数在成功时返回0,失败时返回-1。

    如果使用不同的线程库,则需要一些额外的工作,必须使用你的线程库来定义函数去实现:

  • 相关阅读:
    Java8 新特性default
    Java Map操作
    Java List操作
    Java Set操作
    Java集合 List,Set,Map
    Java final,static 关键字
    Java ConcurrentHashMap
    Java Synchronized的用法
    Linux 基本收集
    HashMap 扩容 加载因子
  • 原文地址:https://www.cnblogs.com/new0801/p/6176898.html
Copyright © 2011-2022 走看看