资料介绍
软件简介
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); ...
- 具有小浮点的高性能神经网络
- 同步网络高性能线卡的应用
- 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次下载 | 免费
评论
查看更多