c++
文章平均质量分 59
ndrandy
这个作者很懒,什么都没留下…
展开
-
swoole源码解读之协程切换机制
最近一段时间,突然想研究一下swoole底层的协程切换机制,一方面可以对swoole更加了解,然后有可以加深php扩展开发的一些知识,最后是为了提升c/c++技能至于探索整个协程机制的细节就不讨论了,下面直接列出协程切换的核心要点hook 系统API的socket系列函数,替换成swoole自己封装的socket api,这样可以加入协程的yield() 逻辑 源码路径: include > swoole_socket_hook.h#ifdef __cpluspl...原创 2021-02-04 21:37:12 · 524 阅读 · 0 评论 -
并发编程在Java和c++中的高度概括
Java: synchronized 用法 volatile 用法 ThreadLocal 用法 Executor 用法 Atomic package用法 主动的使用Lock Future ThreadPoolExecutor 线程池 几个并发集合类型的用法 遵循JVM happens before 原则 重要知识点:因为“cpu缓存” 导致的“伪共享”、编译器执行指令优化导致的重排序(re...原创 2021-01-13 16:22:25 · 243 阅读 · 0 评论 -
谈一谈TimeWheel算法删除空闲连接
Time Wheel的具体算法原理,可以参考网络上的资料,本文不探讨具体的原理。在多数的网络库中,要删除空闲的连接,都会使用Time Wheel 时间轮算法。在不做任何优化的情况下,如果所有的TCP连接对象都存储在$connection_list数组中,那边要删除空闲连接,常规的伪代码大致如下<?phpClass Connection { private $fd; //最近一次收到消息的时间戳 public $lastRecvTime; //每次连接onMes.原创 2021-01-11 18:13:20 · 205 阅读 · 0 评论 -
Clion下c++ library开发CMake使用指引
正常的c++可执行程序,都是一个CMakelists.txt就可以搞定的,而且clion默认就可以run + debug, 但是当我们要开发一个library时,就需要对这个library进行使用测试,默认的library不是executable,无法直接在clion中run或者debug的。本文涵盖的另外一个点就是:Clion下一个project如何跑多个可执行文件1、首先我们通过Clion新建一个C++ library项目, 此时ide会自动创建根目录下的CMakelists.txt文件,此.原创 2020-10-12 15:45:36 · 3176 阅读 · 2 评论 -
C++ 写基于http的API接口用什么库
boost的beast库,推荐!!! The GNU libmicrohttpd Library (http://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html) cinatra(https://www.cnblogs.com/tianshifu/p/8410791.html)原创 2020-08-14 15:00:19 · 972 阅读 · 1 评论