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。

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

  • 相关阅读:
    关于vue中如何实现排到他思想
    js 文件下载
    js文件上传
    webpack学习笔记
    this总结
    React中props与state
    js事件总结
    js深拷贝与浅拷贝
    JS设计模式之观察者模式
    ES5与ES6的继承
  • 原文地址:https://www.cnblogs.com/new0801/p/6176898.html
Copyright © 2011-2022 走看看