Linux企業級開發技術(7)——libevent企業級開發之鎖和執行緒
編寫多執行緒程式的時候,在多個執行緒中同時訪問同樣的資料並不總是安全的。
libevent的結構體在多執行緒下通常有三種工作方式:
1、某些結構體內在地是單執行緒的:同時在多個執行緒中使用它們總是不安全的。
2、某些結構體具有可選的鎖:可以告知libevent是否需要在多個執行緒中使用每個物件。
3、某些結構體總是鎖定的:如果libevent在支援鎖的配置下執行,在多個執行緒中使用它們總是安全的。
為獲取鎖,在呼叫分配需要在多個執行緒間共享的結構體的libevent函式之前,必須告知libevent使用哪個鎖函式。
如果使用pthreads庫,或者使用Windows本地執行緒程式碼,那麼你是幸運的:已經有設定libevent使用正確的pthreads或者Windows函式的預定義函式。
介面:
int evthread_use_pthreads(void);
函式在成功時返回0,失敗時返回-1。
如果使用不同的執行緒庫,則需要一些額外的工作,必須使用你的執行緒庫來定義函式去實現:
相關文章
- Linux企業級開發技術(6)——libevent企業級開發之記憶體管理Linux記憶體
- Linux企業級開發技術(1)——epoll企業級開發之簡介Linux
- Linux企業級開發技術(2)——epoll企業級開發之epoll介面Linux
- Linux企業級開發技術(3)——epoll企業級開發之epoll模型Linux模型
- Linux企業級開發技術(4)——epoll企業級開發之epoll例程Linux
- 企業級開發框架----------Django框架Django
- 企業級 Web 開發的挑戰Web
- 關於PHP在企業級開發領域的訪談——企業級開發,PHP準備好了嗎?PHP
- 我學Ajax企業級開發 之 Ajax構建塊
- 22. 企業級開發基礎3:類和物件物件
- 微服務PaaS框架,RestCloud企業級開發框架微服務框架RESTCloud
- 如何快速開發Java RCP企業級應用?Java
- 低程式碼開發平臺,快速開發企業級系統
- KubeSphere 宣佈開源 Thanos 的企業級發行版 Whizard
- 關於企業級應用和web開發的區別Web
- 企業級軟體開發新模式:低程式碼模式
- Linux企業級專案實踐之網路爬蟲(26)——執行緒池Linux爬蟲執行緒
- 26. 企業級開發基礎7:物件導向特徵(多型)物件特徵多型
- 區塊鏈技術開發主鏈 區塊鏈的企業級應用剖析區塊鏈
- 執行緒和鎖,鎖升級執行緒
- 30.4. 企業級開發進階2.4:服務端快捷開發服務端
- 安全可控的企業級低程式碼開發平臺
- 快速構建企業級應用的開發平臺
- 20. 企業級開發基礎1:自定義模組
- 23. 企業級開發基礎4:物件導向物件
- 百億級企業級 RPC 框架開源了!RPC框架
- 餐飲行業企業管理系統開發行業
- 區塊鏈技術應用物流實體落地開發,企業級區塊鏈服務區塊鏈
- IOS企業版開發iOS
- 企業級軟體系統開發為何這麼貴?
- 33.企業級開發進階6:資料庫操作資料庫
- 32.企業級開發進階4:正規表示式
- 28. 企業級開發基礎9:異常處理
- 30.2. 企業級開發進階2.2:TCP實戰TCP
- 用Servlet開發企業級三層Web應用(一) (轉)ServletWeb
- 《企業級ios應用開發實戰》一第1章企業應用的話題iOS
- 大咖助陣全球企業級OpenSCA技術開源釋出會
- 畫江湖之 PHP 多執行緒開發 【執行緒安全 互斥鎖】PHP執行緒