协程库项目更新了!

文摘   2024-12-10 11:35   广东  

星球里的协程库项目正式做了第二版更新:

更新后的协程库项目代码开源的Github上:https://github.com/youngyangyang04/coroutine-lib

大家可以自己学习,也欢迎star、fork

目前知识星球里已经更新 6个CPP项目、2个Java项目、两个前端、一个Go项目。加入星球后可以全部获取。

今年秋招星球录友们都用的都是 星球里的项目:

项目专栏是知识星球录友专享。

项目专栏第二版优化在哪里

性能测试

协程库项目是去年(23年)12月份发布的,已经过去一年了,也有不少录友反馈了一些问题。

主要问题就是性能测试这块,因为面试的时候,面试官经常问,用了协程库 性能究竟提升在哪。

第二版本,对性能测试这块做了全面的补充,和代码说明 :

具体代码实现讲解

对项目代码中具体的类都做了详细讲解:

在讲解中,把大家可能产生的疑惑,都以面试问答的方式来做讲解:

对于代码的执行顺序都画详细流程图

为什么要做协程库?

1、不“烂大街”,主打一个差异化

现在CPP的项目其实可选的余地并不多,大家主要是做webserver。

2、协程确实有用

面试中,面试官经常会问这样的问题,“你知道线程和进程区别吗?”然后会紧接着追问“你了解协程吗?

协程和进程、线程又有什么区别?

”我们通过基础知识的学习和如WebServer此类项目,已经对进程和线程有了比较深的理解,但对协程相关知识却知之甚少。

协程作为一种强大的并发编程技术,可以在需要处理大量I/O操作或者并发任务的情况下提高程序的性能和可维护性。

在许多场景应用广泛,如果我们能做一个协程库的项目,不但可以让简历更加出彩,对以后的工作也大有帮助。

3、协程库只是一个轮子,可以方便的应用在其他项目中,增加其他项目的“新意”

自己手动完成一个协程库,还可以直接将我们自己编写的协程库用在其他项目里。

就比如“烂大街”的WebServer,引入协程技术,不但可以提高并发和资源利用率,还大大简化了异步编程的复杂性,使代码更易于理解和维护,这样这个“烂大街”的项目也就有了新意。

4、增加知识的深度和广度,提高面试通过率

深入理解了协程技术后,即使面试官不主动问协程技术,就算问进程与线程,我们也可以主动提及协程,与线程和进程对比,引导面试官问协程相关的问题,主动展示自己知识的深度和广度,这会大大提高我们面试的通过率。

本项目文档

这次的项目文档依然非常齐全,从 前置知识 到 理论基础,从 动手实现 到 项目拓展 再到最后 简历如何写,面试会问的问题,都给大家安排了。

  • 前序
    • 为什么要做协程库?
    • 所需要的基础知识
    • 编程语言
    • 操作系统&Linux
    • 计算机网络
    • 参考书籍&开源项目&博客
  • 动手前先了解一下协程
    • 什么是协程?
    • 对称协程与非对称协程
    • 有栈协程与无栈协程
    • 独立栈与共享栈
    • 协程的优缺点
    • 协程基础知识
    • C++有哪些协程库?
  • 开始动手
    • 协程类的实现
    • 协程调度
    • 协程+IO
    • 定时器
    • hook
  • 写好了就完了吗
    • 项目扩展
    • 协程+
    • 性能测试
  • 如何应对面试
    • 简历怎么写?
    • 面试会问哪些问题呢?

大家看完这份文档,直接就可以按照文档里的简历写法,写到自己的简历里。

面试官最喜欢问的项目难点,项目收获,都给大家列好了:

面试常见问题也给大家列出来,如果自己没时间理解,直接“背诵”

本项目的性能测试很重要,用了协程库为什么性能就能提升,具体提升了多少:

如果你认真做完项目,本项目文档给你可以优化的方向:

项目文档其他部分截图:

项目文档获取方式

本PDF文档仅为星球内部专享,加入知识星球后,可以获取星球全部,项目资料和八股资料 包含:6个CPP项目、2个Java项目、两个前端、一个Go项目、最强八股文第五版、面试突击八股文。

知识星球支持三天内全额退款,可以进去体验三天,退款方式在知识星球APP右上角。(全程无套路)

扫码加入代码随想录知识星球,方向比努力更重要,一群人可以走的更远!


代码随想录
认准代码随想录,学习算法不迷路。 刷题网站:programmercarl.com
 最新文章