資料介紹
軟件簡介
mthread
簡介
[mthread]是一個基于協程的高性能網絡庫,目前提供支持TCP/UDP等協議的非阻塞式的客戶端庫(服務端正在開發中...)
特性
-
不用依賴任何第三方庫
-
基于支持多個平臺的協程調度
-
支持epoll,kequeue
-
不用寫異步調度代碼,全部代碼同步,但是框架內部是異步處理
-
提供非阻塞TCP客戶端
-
提供非阻塞UDP客戶端
-
優秀的跨平臺特性和高性能(理論上只要系統內存足夠大,句柄沒有限制,可以無限創建無限個協程)
-
使用簡單,只需要引入一個libmthread.a或者ibmthread.so
除此之外,基于該庫之上正在開發各個客戶端庫:memcache,redis,wrk等
快速開始
編譯
編譯.a或者.so,到當前目錄下執行:
make
編譯測試代碼,到tests目錄下執行:
make
或者只運行某個單元測試:
make event
An dns client
void?func(void?*args) { ????std::string?*str?=?(std::string*)args; ????time_t?ttl?=?0; ????std::vector?vc; ????int?ret?=?GetInstance ()->dns_lookup(str->c_str(),?vc,?&ttl); ????if?(ret?0)? ????{ ????????LOG_ERROR("%s,?make?dns?query?failed",?str->c_str()); ????????return?; ????} ????for?(std::vector ::iterator?iter?=?vc.begin();? ????????iter?!=?vc.end();?iter++)? ????{ ????????struct?in_addr?addr; ????????memcpy(&addr,?&(*iter),?sizeof(struct?in_addr)); ????????LOG_DEBUG("%s,?%d,?%s",?str->c_str(),?*iter,?inet_ntoa(addr)); ????} ????LOG_DEBUG("ttl?:?%ld",?ttl); } int?main(int?argc,?char*?argv[]) { ????int?ret?=?mt_init_frame(); ????LOG_DEBUG("init?ret?:?%d",?ret); ????mt_set_hook_flag(); ????mt_set_timeout(200); ????Frame?*frame?=?GetInstance(); ????//?測試?:?使用協程請求耗時 ????LOG_DEBUG("---?start?time?:?%ld",?Utils::system_ms()); ????for?(int?i?=?2000;?i?2005;?i++) ????{ ????????std::stringstream?ss; ????????ss?<"www."?< 說明其中dns內部修改調用接口
... ????addr.sin_family?=?AF_INET; ????if?(m_dns_svr_?==?NULL) ????{ ????????addr.sin_addr.s_addr?=?inet_addr(PUBLIC_DNS_DEFAULT_SERVER);??///服務器ip ????} ????else ????{ ????????addr.sin_addr.s_addr?=?inet_addr(m_dns_svr_);??///服務器ip ????} ????addr.sin_port?=?htons((uint16_t)PUBLIC_DNS_DEFAULT_PORT); ????int?query_len?=?make_dns_query_format(); ????if?(query_len?<=?0)? ????{ ????????return?-1; ????} ????int?recv_len?=?sizeof(m_recv_buf_); ????ret?=?udp_sendrecv(&addr,?m_send_buf_,?query_len,?m_recv_buf_,?recv_len,?m_timeout_); ????LOG_DEBUG("ret?:?%d,?recv_buf?:?%s,?recv_len?:?%d",?ret,?m_recv_buf_,?recv_len); ...
- 具有小浮點的高性能神經網絡
- 同步網絡高性能線卡的應用
- Swow高性能純協程網絡通信引擎
- 220MHz高性能差分振蕩器SiT9121 4次下載
- 高性能Type-C/DP1.4至HDMI2.0b轉換器CS5265AN 20次下載
- MX25L6445E高性能串行閃存規范文件 20次下載
- 高性能嵌入式堆棧Azure PTOS USBX概述 10次下載
- 高效高性能LED恒流驅動電源芯片AX2028 24次下載
- 高性能低成本的藍牙模塊CSR6576原理圖 16次下載
- 將置信規則庫分級優化的網絡安全態勢預測方法 11次下載
- OV971高性能視頻汽車視覺應用簡介.pdf 1次下載
- 高性能CPU的時鐘網絡設計 23次下載
- 高性能CPU時鐘網絡設計 46次下載
- 簡述協處理器發展歷程及前景展望
- 支持COC的低層高性能通信庫
- 帶你了解什么是高性能計算(HPC) 277次閱讀
- 談談協程的那些事兒 1010次閱讀
- 高性能網絡框架之XDP技術解析 3206次閱讀
- 高性能數學計算庫的現狀 1323次閱讀
- 高性能計算關鍵組件核心知識 939次閱讀
- 詳解Linux線程、線程與異步編程、協程與異步 835次閱讀
- 基于NVIDIA QM8700/8790交換機與HDR網卡的InfiniBand高性能網絡解決方案 3101次閱讀
- 一個高性能異步計算框架介紹 710次閱讀
- 使用channel控制協程數量 1036次閱讀
- 詳解Netty高性能異步事件驅動的網絡框架 1707次閱讀
- 驍龍835有協處理器嗎 6332次閱讀
- 手機上的協處理器有什么作用_蘋果協處理器是干什么的 2.1w次閱讀
- Python自動化運維之協程函數賦值過程 3655次閱讀
- Python中的多核CPU共享數據之協程詳解 6452次閱讀
- 基于FPGA協處理器的汽車信息娛樂系統設計 1059次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多