
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在微服务中网关是很重要的操作,肩负了统一鉴权、熔断限流、负载均衡等责任,网关是非常重要的一部分,本篇我们就来介绍一款高性能网关Apisix,这个网关的主要特点有三个,1.全动态能力,你不需要重启就可以更改网关的各种配置(conf.yaml这个无法热加载),2.使用nginx内置变量做为路由的匹配条件,可以自定义匹配函数来过滤请求,3.支持与众多的工具与平台集成使用,并且有优化的ui界面下面我们开始
自定义可等待对象需要满足特定的接口要求,主要涉及和这三个成员函数。:用于判断是否可以立即恢复协程的执行。若返回true,协程会马上恢复;若返回false,协程就会被挂起。:在协程挂起时调用,这里可以执行异步操作。在示例中,使用一个新线程来模拟异步操作,操作完成后恢复协程。:在协程恢复执行时调用,返回异步操作的结果。return 42;});// 输出: 42return 0;
c++中通过try catch throw这三个关键字处理异常,我们为什么要处理异常呢,为什么要用专门的异常处理来处理异常呢,这是本文将要解决的几个问题,我们会一一解答疑惑,异常处理的主要作用是,让我们的程序更健壮,当遇到不可预测的问题时可以做出处理,而不是直接崩溃,当发送错误时可以让程序执行备选方案,如果不得不接受程序时可以提前做一些必要的工作,如将内存中的数据写入文件、关闭打开的文件、释放动态
c中变量的数据类型可以强制转换为其他数据类型。但由于这种C风格的类型转换可能会出现一些问题,即过于松散的情况和因此 C++ 提出了更加规范、严格的类型转换,添加了四个类型转换运算符,进而更好的控制类型转换过程。

自定义可等待对象需要满足特定的接口要求,主要涉及和这三个成员函数。:用于判断是否可以立即恢复协程的执行。若返回true,协程会马上恢复;若返回false,协程就会被挂起。:在协程挂起时调用,这里可以执行异步操作。在示例中,使用一个新线程来模拟异步操作,操作完成后恢复协程。:在协程恢复执行时调用,返回异步操作的结果。return 42;});// 输出: 42return 0;
本节我们来详细介绍一下c++中的线程类thread,在讲解的过程中会用到大量模板的知识,可以去看是一个 SFINAE(Substitution Failure Is Not An Error)技巧,用于禁止使用thread对象作为可调用对象来构造新的thread对象。
c++中通过try catch throw这三个关键字处理异常,我们为什么要处理异常呢,为什么要用专门的异常处理来处理异常呢,这是本文将要解决的几个问题,我们会一一解答疑惑,异常处理的主要作用是,让我们的程序更健壮,当遇到不可预测的问题时可以做出处理,而不是直接崩溃,当发送错误时可以让程序执行备选方案,如果不得不接受程序时可以提前做一些必要的工作,如将内存中的数据写入文件、关闭打开的文件、释放动态
c++中const关键字可以实现将一个变量或者函数,限定为只读不可进行修改的功能,它的作用是很大的,const可以避免程序员在代码中意外修改某些本应保持恒定的值,并且它还可以限定指针或引用,使其无法通过它们修改所指向的对象,通过const,可以增强代码的安全性和可读性,明确标识出不应被修改的部分,同时编译器会强制检查这些约束。下面再仔细讲讲,const在c++的各种应用。
泛型编程是一种编程范式,它允许程序员编写与类型无关的代码,从而在编译期确定具体的类型。我们通过模板编写一个函数可以让编译器,自动生成对应类型的实现,这大大减少了重复代码的出现,还提高了代码的可维护性和可扩展性,很重要的一点是模板有特性。
RAII是想是c++之父提出的一种自动管理生命周期的思想,使用局部变量来管理动态分配的内容,它充分的利用了C++语言局部对象自动销毁的特性来控制资源的生命周期。go语言中的defer就是这种实现,提前定义一个函数,当作用域结束的时候自动执行,今天我们就来实现这个小功能。上面的功能就实现了最基本的defer功能,在构造时确定函数,析构时执行我们给它的函数,下面测试代码。输出是5511 11完美实现。







