编程之家(jb51.cc)编程百科栏目主要推荐程序员常用编程技术介绍,以下是程序开发相关编程语言,主要信息提供给程序员快速了解所需要学习的编程技术语言。

libgo Stackful 协程库

程序名称:libgo

授权协议: MIT

操作系统: 跨平台

开发语言: C/C++

libgo 介绍

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了,比如hiredisMysqLclIEnt这种客户端驱动可以直接使用,并且可以得到不输于异步driver的性能

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

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

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

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

    include 

    include 

    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 官网

https://github.com/yyzybb537/libgo

编程语言

UReport2 是一款高性能的架构在 Spring 之上纯 Java 报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。
QuickServer 是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议。
Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性
Elastic-Job 是一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。
Velosurf 是一个Velocity模板引擎的数据库操作库,它提供自动的表映射。
Castor 项目为开源领域提供了数据(XML 和数据库)绑定功能。其原理跟 Sun 的 JAXB 很相似,并且向关系数据库表添加了增强的映射和绑定功能。
语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。
Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce