E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
ucontext
C++协程库实现
linux平台下我这里使用glibc提供的
ucontext
实现(
哦咧哇岸居
·
2023-11-27 01:11
C++应用
c++
协程
【服务器】fiber协程模块
fiber协程模块以下是从sylar服务器中学的,对其的复习;参考资料sylar的fiber协程模块是基于
ucontext
_t实现非对称协程函数只有两个行为:调用与返回。
十字星的约定_
·
2023-11-09 18:30
服务器
服务器
运维
c++
c++20
c语言
开发语言
linux
快速上手,协程剖析
Linux内核为协程编程提供了支持,相关的函数声明在
ucontext
.h头文件中。
runnerchen1
·
2023-11-09 13:11
linux
协程
c语言
2.3.1 协程设计原理与汇编实现
2.协程的原语操作yield让出resume恢复3.协程的切换切换有三种方式1.setjmp/longjmp2.
ucontext
3.asmcode汇编实现切换的优缺点1.性能较高2.容易理解3.容
高二的笔记
·
2023-10-27 03:00
零声教育
汇编
算法
基于 Linux
ucontext
函数族实现的 简易的,非对称的 协程库
写了个协程库(小玩具)指路:请移步GitHub里面有三个分支,README.md写的应该还是挺清楚的。前前后后写了好久…我是一个大三找实习的鼠鼠,加油吧!!!
qq_53398102
·
2023-10-23 09:50
linux
c++
c语言
学习
数据结构
协程切换原理与实践 -- 从
ucontext
api到x86_64汇编
目录1.协程切换原理理解2.
ucontext
实现协程切换2.1实现流程2.2根据
ucontext
流程看协程实现2.3回答开头提出的问题3.x86_64汇编实现协程切换3.1libcox86_64汇编代码分析
vonchenchen1
·
2023-06-12 18:03
c
协程
汇编
协程原理
协程切换
网络编程
协程
coroutine协程库源码分析
ucontext
簇函数学习x86-64下函数调用及栈帧原理为什么觉得协程是趋势?进程线程为什么需要线程?或者说线程有什么优点?
wayyyy
·
2023-04-20 17:25
C++协程(2):使用
ucontext
实现Linux下的协程池
/*====================================*file:ws_thread_proto.h文件*anchor:wensheng*date:2016-05-16*info:协程*log:1.2016-05-16wenshengcreate======================================*/#ifndef_WS_THREAD_PROTO_H_
wenmoxiao
·
2023-04-11 10:26
协程
liunx
C++
协程
多线程
线程
C/C++ 协程的实现
https://github.com/cloudwu/coroutinehttps://zhengyinyong.com/post/
ucontext
-usage-and-coroutine/https:
tadus_zeng
·
2023-04-11 09:55
c++
c++
后端
Pebble协程库实现
这部分准备分析下Pebble里的协程实现,它和上部分的Phxrpc协程有一部分相似点,即都使用了
ucontext
_t,也有协程管理器,调度器,定时器等设计思想,和Phxrpc不同的是定时器实现并非小根堆
fooboo
·
2023-04-03 07:26
C++与协程
C++与协程协程的起源协程初识协程与多线程协程与函数协程的分类协程的调度协程的切换协程实现Duff'sdevice(达夫设备)封装一个简单的协程类使用
ucontext
切换协程基于共享栈的协程协程的起源
?。。。。
·
2023-03-31 06:01
从
ucontext
到coroutine
一.人生三大问:我是谁,我从哪来,我到哪去?1.1.协程是什么我们知道,在现代计算机的世界里,有进程,有线程,有了他们两个,我们就足以应对大多数的并发应用,更不用提在网络编程的世界里还有select和epoll这种手段来应对并发。那么协程又是什么什么呢,在go语言里,这玩意叫做goroutine,在python里被称为greenthread或者其他的什么玩意,其与操作系统的线程的最大区别就是它是用
cunfate
·
2022-02-18 17:56
linux手册翻译——getcontext(2) setcontext(2)
getcontext,setcontext-getorsettheusercontext#includeintgetcontext(
ucontext
_t*ucp);intsetcontext(constucontext_t
蟹蟹宁
·
2021-07-02 15:27
协程
协程有很多库我们先看
ucontext
库其中最主要是四个个函数intgetcontext(
ucontext
_t*ucp);//获取当前上下文intsetcontext(constucontext_t*ucp
猪也fine
·
2020-09-16 23:16
linux
asm 比
ucontext
快
测试原装libco的asm版与libco的
ucontext
版性能,同一个机器、同一份代码,连接不同的libco实现库。asm版比
ucontext
快6倍左右。
aalbertini
·
2020-09-14 10:19
libco
进程和协程切换原理及实现
进程和协程切换原理及实现推荐语背景业界现状概述进程切换实现原理异常控制流异常异常类别进程用户模式和内核模式上下文切换协程切换基本原理上下文切换实现方式协程栈实现方式静态栈分段栈拷贝栈共享栈(libco)虚拟内存栈(libgo)协程调度实现方式栈式调度(libco)星切调度(libgo)环切调度HOOK协程上下文切换实现关于
ucontext
wallace_ss
·
2020-09-11 10:44
ucontext
族函数的使用及原理分析
文章目录
ucontext
介绍寄存器介绍
ucontext
_t结构体getcontextsetcontextmakecontextswapcontext使用示例示例一、上下文的保存与恢复(getcontext
凌桓丶
·
2020-08-24 19:04
项目
ucontext
-人人都可以实现的简单协程库
1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。首先我们可以看看有哪些语言已经具备协程语义:比较重量级的有C#、erlang、golang*轻量级有python、lua、javascript、ruby还有函数式的scala、scheme等。c/c++不直接支持协程语义,但有不少开源的协程库,如:Protothreads:一个“蝇量级”C语言协程库libco:来自腾
曾经的学渣
·
2020-08-15 02:29
C/C++
关于
ucontext
的源码阅读
之前有写过一个协程库,用的是libco的context_swap.s作为协程切换,为了了解与
ucontext
的区别,去读了源码进行了解。
Tannin724
·
2020-07-06 03:54
C++
深入理解qemu协程
文章目录简介ucontextAPI实现协程数据结构
ucontext
函数族一个简单的例子一个协程的实现qemu实现协程数据结构setjmp函数族qemu协程基本接口创建协程进入协程协程生命周期qemu协程
享乐主
·
2020-07-04 18:52
虚拟化
协程学习:协程的实现(二)
云风协程的实现框架:https://github.com/cloudwu/coroutine/准备知识:
ucontext
机制[1]
ucontext
机制是GNUC库提供的一组用于创建、保存、切换用户态“上下文
我只是个程序员
·
2020-07-04 17:11
C/C++
协程
Qemu中coroutine机制的实现
Qemu貌似提供了好几种coroutine的实现方式(gthread、
ucontext
、sigalstack),我只看了利用
ucontext
实现的部分。网上有一篇同主题的博文(http://www.c
LPSTC123
·
2020-07-04 06:50
虚拟化
一种在C语言中用汇编指令和 System V
ucontext
支撑实现的协程切换
1实现内容此文在看了pythonyield和yieldfrom机制后,觉得这种轻量级编程技术在小并发场景下优雅可爱,在大并发场景下较进程或线程而言能突破资源瓶颈,实在令人忍不住而想在C语言中实现一个。然后经过一些学习后,此文就在Linux上用C语言实现了一个。目前具体包括[1]co_yield()——类似python的yield,用于协程切换;[2]co_send()——类似python生成器中的
文字篇章
·
2020-02-22 19:27
我所理解的
ucontext
族函数
今天,我要写一篇文章,好好来说一下我所理解的
ucontext
族函数。
Yihulee
·
2020-01-04 13:48
基于
ucontext
.h的轻量级协程库
本文主要是对自己学习协程并实现轻量级协程过程的一个记录,语言略显啰嗦,各位见谅.水平有限,如有疏漏,欢迎各位指正.一了解协程协程可以理解为一种用户态的轻量级线程,切换由用户定义协程上下文切换很快,因为不会陷入内核态协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切换回来的时候,恢复先前保存的寄存器上下文和栈优点协程具有极高的执行效率因为子程序切换不是线程切换,是
neilzwshen
·
2019-12-17 03:28
C语言实现用户态线程库案例
轮子年年有人造,我们也来凑热闹,参考协程实现,大概有以下几种方法:1)利用setjmp,longjmp2)利用
ucontext
接口函数3)汇编(线程无非就是多了个抢占功能,由定时器触发,而非自愿让出运行权限
·
2019-09-24 13:38
C++ 协程入门学习笔记
1.
ucontext
的用法创建、保存、切换用户态执行“上下文”(context)的API:ucontextvoidmakecontext(
ucontext
_t*ucp,void(*func)(),intargc
zhaozhengcoder
·
2019-06-26 22:32
C++ 协程入门学习笔记
1.
ucontext
的用法创建、保存、切换用户态执行“上下文”(context)的API:ucontextvoidmakecontext(
ucontext
_t*ucp,void(*func)(),intargc
zhaozhengcoder
·
2019-06-26 22:32
ucontext
-人人都可以实现的简单协程库
ucontext
-人人都可以实现的简单协程库目录(?)[+]1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。
qq_16836151
·
2016-04-21 21:00
[ZZ]实现c协程
19/2554574.html协程的概念就不介绍了,不清楚的同学可以自己google,windows和unixlike系统本身就提供了协程的支持,windows下叫fiber,unixlike系统下叫
ucontext
ym65536
·
2016-03-22 21:00
利用
ucontext
.h中接口实现用户级别线程库
想必大家在初次接触多线程或多进程时一定会感觉这是多么的神奇!一个程序居然可以“同时”执行好多工作,此时你一定有一探其究竟的想法吧?可是无奈,这些都是内核中十分复杂的代码。对于初入计算机大门的我们,去看那些东西,的确有些困难。但是不用灰心,本篇博文我将为大家介绍一个由我自己实现的简单线程,代码也就100多行,程序还很简陋,但是我感觉这有助于我们对进程或线程的理解1.设计思路要实现线程,那么就先得有个
wangyaninglm
·
2016-01-07 17:00
C++
线程
内核
ucontext
实现c协程
协程的概念就不介绍了,不清楚的同学可以自己google,windows和unix like系统本身就提供了协程的支持,windows下叫fiber,unix like系统下叫
ucontext
.
·
2015-10-23 09:56
实现
C协程实现的效率对比
前段时间实现的C协程依赖栈传递参数,在开启优化时会导致错误,于是实现了一个
ucontext
的版本,但
ucontext
的切换效率太差了, 在我的机器上执行4000W次切换需要11秒左右,这达不到我的要求
·
2015-10-23 09:56
效率
ucontext
实现的用户级多线程框架2(抢先式多线程)
以前曾经写过一篇blog,使用linux
ucontext
实现的用户级多线程框架.那个框架实现的是协作式多线程序,也就是只有当正在执行的coroutine 主动放弃处理器时,其它coroutine才有机会得以执行
·
2015-10-23 09:55
context
ucontext
实现的用户级多线程框架
代码如下: uthread.h /** brief: 用
ucontext
实现的用户级线程框架* author: kenn
·
2015-10-23 09:55
context
ucontext
实现的用户级多线程框架3(实现echo服务器)
, 因为只是个实验,所以代码写得比较杂乱,还有很多可能出错的情况也没有处理,这些在今后的进一 步研究中都会慢慢修改,下面是代码: uthread.h /** brief: 用
ucontext
·
2015-10-23 09:55
context
[linux]关于
ucontext
库的一个小程序的注释 @ C语言
在维基百科https://en.wikipedia.org/wiki/Setcontext里面有以下一段程序,理解了这个小程序,基本上对
ucontext
这个执行上下文切换的库也能理解个差不多。
南郭子綦
·
2015-08-28 15:00
用mprotect和sigsegv 调查内存异常的问题
staticvoidsegv_handler(intsig_no,siginfo_t*pt_siginfo,void*p_
ucontext
){inti=0;//printf("entersegvhandler
wanjia19870902
·
2015-08-12 15:34
[置顶]
ucontext
-人人都可以实现的简单协程库
1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。首先我们可以看看有哪些语言已经具备协程语义:比较重量级的有C#、erlang、golang*轻量级有python、lua、javascript、ruby还有函数式的scala、scheme等。c/c++不直接支持协程语义,但有不少开源的协程库,如:Protothreads:一个“蝇量级”C语言协程库libco:来自腾
qq910894904
·
2014-12-13 17:00
协程
ucontext
2014.04.18.Coroutines 的坑
最近的程序莫名奇妙的coredump, 挂的方式和地方都不一样,后来怀疑是协程的堆栈溢出了.makecontext()传入的第一个参数
ucontext
_t*其中的成员uc_stack.ss_size需要指定堆栈的大小
S.l.e!ep.¢%
·
2014-04-17 16:00
使用makecontext实现用户线程
使用makecontext实现用户线程现代Unix系统都在
ucontext
.h中提供用于上下文切换的函数,这些函数有getcontext,setcontext,swapcontext和makecontext
cyberlabs
·
2011-10-31 08:07
Linux
AI服务器的设计与实现
AI对象被激活之后就会运行一段lua脚本,以实现AI逻辑.之所以采用用户级线程(windows下是fiber,linux下使用
ucontext
)
·
2010-07-14 22:00
服务器
轻量级线程切换效率
libcoro,它的linux版本可以使用4种模式,切换效率分别为: asm: 50,000,000 switch/s setjmp/longjmp: 42,000,000 switch/s
ucontext
qiezi
·
2009-07-13 12:00
linux
项目快完成了
测试结果还算理想,
ucontext
的切换效率在超过200万/秒,erlang在我测试的相同机器上非smp版本720万/秒,smp版本不到200万/秒,切换性能的确有差距,不过目前看来是足够用了。还没有
qiezi
·
2009-03-01 22:00
Erlang
多线程
Cache
FP
C#
项目快完成了
测试结果还算理想,
ucontext
的切换效率在超过200万/秒,erlang在我测试的相同机器上非smp版本720万/秒,smp版本不到200万/秒,切换性能的确有差距,不过目前看来是足够用了。
qiezi
·
2009-03-01 22:00
多线程
cache
erlang
C#
FP
A piece code for backtrace in MIPS
一个相关的链接 http://www.yosefk.com/blog/getting-the-call-stack-without-a-frame-pointer.html #define_SYS_
UCONTEXT
_H
RichardYSteven
·
2008-11-19 14:00
C和Erlang轻量级线程性能
阅读更多简单比较了一下
ucontext
和Erlang的进程切换效率,在我的机器上
ucontext
每秒可以完成90万次切换,Erlang则要快得多,每秒可以完成412万次切换,这个性能比较和之前shootout
qiezi
·
2008-03-13 23:00
Erlang
C
C++
C#
多线程
C和Erlang轻量级线程性能
简单比较了一下
ucontext
和Erlang的进程切换效率,在我的机器上
ucontext
每秒可以完成90万次切换,Erlang则要快得多,每秒可以完成412万次切换,这个性能比较和之前shootout上的测试相近
qiezi
·
2008-03-13 23:00
多线程
C++
c
erlang
C#
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他