原文:发布一个基于协程和事件循环的c++网络库

目录 介绍 使用 性能 实现 日志库 需求 总体结构如下 异步文件Appender实现 协程 类图 原理 需要考虑的问题 协程栈大小 调度策略 协程同步 协程调度 类图 Processer 协程调度示意图 调度过程 为什么需要一个wake协程 定时器 原理 Hook RPC实现 参数序列化及反序列化 数据格式 项目地址:https: github.com gatsbyd melon 介绍 开发服 ...

2019-12-20 20:26 0 1483 推荐指数:

查看详情

实现一个简单的C++

之前看相关的东西时,曾一念而过想着怎么自己来实现一个C++ 用,但在保存现场恢复现场之类的细节上被自己的想法吓住,也没有深入去研究,后面一丢开就忘了。近来微博上看人在讨论怎么实现一个 user space 上的线程,有人提到了 setcontext,swapcontext 之类的函数,说 ...

Sun Mar 23 03:11:00 CST 2014 2 12862
从 Protothreads 和 libco 看 C/C++ 实现的

同步Synchronous,异步(Asynchronous),(coroutine) 同步的好处是逻辑流就是代码的控制流,易于编写。但是如果碰到阻塞请求,就会卡住,因此CPU利用率不高。当然操作系统可以进行进程/线程调度,但是又有一些上下文切换的开销。 异步的好处是当线程可以不用一直阻塞 ...

Mon Jul 30 06:44:00 CST 2018 0 1933
C++ 20 Coroutine

开发工具:Visual Studio 2019 概念 ,是一种比线程更加轻量级的存在,不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。 的特点在于是一个线程执行,那和多线程比,有何优势 ...

Sun Mar 07 04:07:00 CST 2021 0 417
C++中使用golang的

开源项目cpp_features提供了一个仿golang的stackful. 可以在c++中使用golang的,大概语法是这样的: 怎么样,语法是不是和golang很像? 以下是这个项目的ReadMe coroutine是一个使用C++11编写的调度式 ...

Sun Nov 22 23:31:00 CST 2015 0 2446
C高级 跨平台

1.0 引言   对于上层语言还是比较常见的. 例如C# 中 yield retrun, lua 中 coroutine.yield 等来构建同步并发的程序. 本文就是探讨如何从底层实现开发级别的. 在说程之前, 简单温故一下进程和线程关系. 进程拥有一个完整的虚拟地址 ...

Wed Sep 21 09:25:00 CST 2016 1 3048
一种C/C++ 实现

一种C/C++ 实现 介绍 在前几天接触到了的概念,觉得很有趣。因为我可以使用一个线程来实现一个类似多线程的程序,如果使用来替代线程,就可以省去很多原子操作和内存栅栏的麻烦,大大减少与线程同步相关的系统调用。因为我只有一个线程,而且程之间的切换是可以由函数自己决定 ...

Mon Aug 11 00:57:00 CST 2014 5 13582
实现c

的概念就不介绍了,不清楚的同学可以自己google,windows和unix like系统本身就提供了的支持,windows下叫fiber,unix like系统下叫ucontext. 在这里重复制造轮子,一是为了更清楚了解的实现,二是为了在windows和unix like系统下 ...

Tue Jun 19 19:43:00 CST 2012 21 9870
C/C++的实现方式总结

1、利用 C 语言的 setjmp 和 longjmp,函数中使用 static local 的变量来保存内部的数据。 函数原型:int setjmp(jmp_buf envbuf);      void longjmp(jmp_buf envbuf, int val); 先调 ...

Sat Sep 22 19:37:00 CST 2018 0 5416
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM