Skip to content

YukangLiu/netco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

netco协程库


blog: http://www.liuyukang.com/archives/netco

1、定位:
netco协程库是纯c++11实现的轻量级对称协程库,有着极简的协程创建接口设计和用于并发网络编程的接口。
若不需要用于网络编程,可使用我另一个更轻量的协程库tinyco:https://github.com/YukangLiu/tinyco


2、使用:
编译src文件夹源码,使用时包含netco_api.h,即可使用netco协程库接口:
co_go(func)执行一条协程;
co_sleep(time)等待time毫秒时间后继续执行当前协程;

包含socket.h,即可使用socket族函数接口:
Socket s; //创建一个socket类
s.bind(80); //绑定端口号80
s.listen(); //开始监听
Socket conSock(s.accept()); //accept一个连接
conSock.read(buf, 1024); //读连接上的数据
conSock.send(buf, 1024); //往对端写数据
Socket clientSock;
clientSock.connect("127.0.0.1", 80); //建立一个连接,之后即可如上述read和send

包含mutex.h,即可使用读写锁,因为读写锁包含了普通的互斥锁功能,不对互斥锁做单独实现
rlock()读锁,runlock()读解锁,wlock()写锁,wunlock()写解锁;

具体用法可见example


3、文件:
src:netco协程库的源代码。
old_version:旧版本源码。
example:测试示例。

netco类图如下:

uml

4、编译:
src:make即可,会生成libnetco.so。
example:make了netco之后进入该文件夹make即可。


5、并发度
测试环境:4核CPU3.70GHz,8G内存3200MHz
使用webbench对回复hello world的功能进行了简单的压力测试,QPS四万多:

qps

附:有什么需求或者bug,建议,问题,都可以邮件 [email protected] 讨论交流,谢谢。

About

A lightweight c++11 symetric coroutine library which can be used for network programming.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published