资料介绍
软件简介
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::vectorvc; 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." << i << ".com"; std::string *s = new std::string(ss.str()); Frame::CreateThread(func, s); } Frame::Run(true); LOG_DEBUG("--- end time : %ld", Utils::system_ms()); return 0; }
说明其中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); ...
- 同步网络高性能线卡的应用 0次下载
- 高性能转换器芯片CS5268AN数据手册 4次下载
- 220MHz高性能差分振荡器SiT9121 4次下载
- Core-3399Pro-JD4六核高性能AI核心板
- 高性能Type-C/DP1.4至HDMI2.0b转换器CS5265AN 19次下载
- 高性能电流模式PWM控制器UC2842B和UC3842B系列 9次下载
- 高性能六轴MEMS运动跟踪装置ICM-20602 13次下载
- 基于ARM的高密度高性能线STM32F103xC 0次下载
- 基于FPGA的高性能全数字锁相环 45次下载
- MX25L6445E高性能串行闪存规范文件 20次下载
- 高效高性能LED恒流驱动电源芯片AX2028 24次下载
- 高性能低成本的蓝牙模块CSR6576原理图 13次下载
- OV971高性能视频汽车视觉应用简介.pdf 1次下载
- 高性能CPU的时钟网络设计 23次下载
- 高性能CPU时钟网络设计 46次下载
- 介绍一种高性能计算和数据中心网络架构:InfiniBand(IB) 287次阅读
- 一种高性能多通道通用DMA设计与实现 496次阅读
- 高性能网络框架之XDP技术解析 1497次阅读
- 高性能芯片有哪些特征? 353次阅读
- 高性能服务器网络模型详解 287次阅读
- 实现敏感薄膜的高性能化的主要途径 355次阅读
- 高性能计算关键组件核心知识 660次阅读
- 浅析OSAT的高性能封装技术 3188次阅读
- 关于HPC的高性能计算测试方法 1477次阅读
- 基于对高性能信号链中电源纹波影响的概括性概述 693次阅读
- 基于NVIDIA QM8700/8790交换机与HDR网卡的InfiniBand高性能网络解决方案 1753次阅读
- 详解Netty高性能异步事件驱动的网络框架 1508次阅读
- ZigBee选择网络协调器控制器要考虑的因素 2456次阅读
- 如何理解服务器的高性能 1772次阅读
- 三栅极的应用优势及对高性能FPGA性能的影响以及 1529次阅读
下载排行
本周
- 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次下载 | 免费
评论
查看更多