libgo 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
libgo 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: C/C++
操作系统: 跨平台
开发厂商: 魅族
收录时间: 2016-01-25
提 交 者: Li_Mr

libgo 是一个使用 C++ 编写的协作式调度的stackful协程库, 同时也是一个强大的并行编程库。

设计之初是为高并发分布式Linux服务端程序开发提供底层框架支持,可以让链接进程序的同步的第三方库变为异步库,不影响逻辑的前提下提升其性能

目前支持两个平台:

  • Linux (GCC 4.8+)

  • Windows (Win7、Win8、Win10 x86 and x64 使用VS2013/2015编译)

使用libgo编写并行程序,即可以像golang一样开发迅速且逻辑简洁,又有C++原生的性能优势。

  • 1.提供golang一般功能强大协程,基于corontine编写代码,可以以同步的方式编写简单的代码,同时获得异步的性能

  • 2.支持海量协程, 创建100万个协程只需使用2GB内存

  • 3.允许用户自由控制协程调度点,随时随地变更调度线程数;

  • 4.支持多线程调度协程,极易编写并行代码,高效的并行调度算法,可以有效利用多个CPU核心

  • 5.可以让链接进程序的同步的第三方库变为异步调用,大大提升其性能。再也不用担心某些DB官方不提供异步driver了,比如hiredis、mysqlclient这种客户端驱动可以直接使用,并且可以得到不输于异步driver的性能。

  • 6.动态链接和静态链接全都支持,便于使用C++11的用户静态链接生成可执行文件并部署至低版本的linux系统上。

  • 7.提供协程锁(co_mutex), 定时器, channel等特性, 帮助用户更加容易地编写程序.

  • 8.网络性能强劲,在Linux系统上超越ASIO异步模型;尤其在处理小包和多线程并行方面非常强大

  • 在源码的samples目录下有很多示例代码,内含详细的使用说明,让用户可以很轻易地学会使用libgo。

#include <stdio.h>
#include <libgo/coroutine.h>

co_main(int argc, char **argv)
{
    go []{
        printf("1\n");
        co_yield;
        printf("2\n");
    };

    go []{
        printf("3\n");
        co_yield;
        printf("4\n");
    };

    return 0;
}
展开阅读全文

代码

libgo 的相关博客

Why c++ coroutine?Why libgo?

讲述C++协程的近况、设计与实现中的细节与决策

【源创专访】魅族高级工程师于洋子:服务端架构设计与开发,数年磨一剑

淡泊明志,宁静致远。技术行业,尤其是选择服务端开发方向,绝不是可以速成的,一定要抱着数年磨一剑的心态去深入探索,才能有...

CLion之C++框架篇-安装工具,基础框架的搭建(一)

背景   日常学习C++,也就是看看书、在vim里写写代码。在日常项目开发中,也是边看书(一是系统性理解、二是找找有什么更好...

魅族 C++ 微服务框架技术内幕揭秘

kiev,是魅族科技推送平台目前使用的C++后台开发框架。2012年,魅族的推送业务刚刚有一点从传统架构向微服务架构转型的意识萌...

zabbix4.0监控Apache配置记录

Last login: Wed Mar 20 09:10:32 2019 from 172.16.5.80 [root@vmhzplinuxserver ~]# cd /home [root@vmhzplinuxserver home...

goahead(嵌入式Web服务器)之交叉编译、移植篇

GoAhead简介: GoAhead是一个开源(商业许可)、简单、轻巧、功能强大、可以在多个平台运行的嵌入式Web Server。 GoAhead主要特...

ODB(C++ ORM)用Mingw的完整编译过程

用mingw官方的GCC4.7.2编译libodb后,并用odb compiler对hello示例生成odb的"包裹"代码,编译链接总是不能通过,下面是编译examp...

swoole| swoole 协程初体验 转

swoole| swoole 协程初体验 date: 2018-5-30 14:31:38 title: swoole| swoole 协程初体验 description: 通过协程的执行初窥 ...

知乎高赞:我的编程能力从什么时候开始突飞猛进?

作者:MutexLock 来源:https://www.zhihu.com/question/356351510 在啃掉一本本计算机经典书籍和写下大量代码以后。 疫情原因...

libgo 的相关问答

还没有任何问答,马上提问

评论 (8)

加载中
能在安卓上使用吗
09/16 16:28
回复
举报
这个库没人维护的把,最近都没用代码更新
07/23 10:49
回复
举报
卧槽! #libgo#
2016/01/25 10:17
回复
举报
强大。和epoll比优劣势如何? #libgo#
2016/01/25 11:51
回复
举报
有没有人将它用到生产环境中 #libgo#
2016/01/25 12:05
回复
举报
感觉设计好强大啊 #libgo#
2016/01/25 12:53
回复
举报
channel的实现有待改善 #libgo#
2016/01/25 16:23
回复
举报
不明觉厉啊 #libgo#
2016/01/26 09:27
回复
举报
更多评论
8 评论
198 收藏
分享
返回顶部
顶部