CO 2.0.1 发布,增加更多 golang 特性

栏目: 软件资讯 · 发布时间: 3年前

内容简介:GitHub https://github.com/idealvin/co 参考文档 中文: [github](https://idealvin.github.io/cn/about/co/) [gitee](https://idealvin.gitee.io/cn/about/co/) English: [github](https://idealvin.github.io/...

GitHub

参考文档

  • 中文: [github](https://idealvin.github.io/cn/about/co/) [gitee](https://idealvin.gitee.io/cn/about/co/)

  • English: [github](https://idealvin.github.io/en/about/co/) [gitee](https://idealvin.gitee.io/en/about/co/)

新特性

  • xrepo
sh
xrepo install -f "openssl=true,libcurl=true" co

 

  • vcpkg
sh
vcpkg install co:x64-windows
 
# http & ssl support
vcpkg install co[libcurl,openssl]:x64-windows

 

  • defer (类似于 golang 中的 defer)
cpp
#include "co/defer.h"
Timer t;
defer(LOG << "time elapse: " << t.us() << "us");

 

  • channel (类似于 golang 中的 channel)
cpp
#include "co/co.h"
 
DEF_main(argc, argv) {
    co::Chan<int> ch;
    go([ch]() {
        ch << 7;
    });
 
    int v = 0;
    ch >> v;
    LOG << "v: "<< v;
 
    return 0;
}

 

  • waitgroup (类似于 golang 中的 sync.WaitGroup)
cpp
#include "co/co.h"
 
DEF_main(argc, argv) {
    FLG_cout = true;
 
    co::WaitGroup wg;
    wg.add(8);
 
    for (int i = 0; i <8; ++i) {
        go([wg]() {
            LOG << "co: "<< co::coroutine_id();
            wg.done();
        });
    }
 
    wg.wait();
    return 0;
}

 

  • 协程在 windows 平台支持 hook。
  • 在指定调度线程中创建协程。
cpp
auto s = co::next_scheduler();
s->go(f1);
s->go(f2);
  • 在所有调度线程中创建协程。
cpp
auto& s = co::all_schedulers();
for (size_t i = 0; i <s.size(); ++i) {
    s[i]->go(f);
}
  • 增加 `void flag::init(const fastring& path);`

改变

  • 全局的 `Closure` 改为 `co::Closure`.
  • 改进 `co::Event`, 可以在协程及非协程中使用, 支持拷贝构造、lambda 中按值捕获.
  • 改进 `co::Mutex``co::Pool`, 支持拷贝构造、lambda 中按值捕获.
  • 改进 `co::close()`, 可以在任何地方调用.
  • 部分支持 mingw, 协程相关特性暂时不能在 mingw 上运行.

问题修复

  •  修复 `fs::file` 读写超过 4G 长度数据的 bug.
  •  修复 http::Client 连接超时时的错误信息.
  •  修复 #165 中的链接问题.

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从问题到程序-用Python学编程和计算

从问题到程序-用Python学编程和计算

裘宗燕 / 机械工业出版社 / 2017-6-1

本书是以Python为编程语言、面向计算机科学教育中的程序设计基础课程与编程初学者的入门教材和自学读物。本书以Python为工具,详细讨论了与编程有关的各方面问题,介绍了从初级到高级的许多重要编程技术。本书特别强调编程中的分析和思考、问题的严格化和逐步分解、语言结构的正确选择、程序结构的良好组织,以及程序的正确和安全。书中通过大量实例及其开发过程,展示了好程序的特征和正确的编程工作方法。此外,书中......一起来看看 《从问题到程序-用Python学编程和计算》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具