06 2022 档案

摘要:事件循环event loop 是asyncio的核心,会运行异步任务和回调,执行网络IO操作,运行子进程。 一个事件循环同一时刻只运行一个任务,只是利用了任务的等待时间,当某个任务需要等待某种资源or某种操作完成的时候,event loop转去调度其他task让其运行。 获取事件循环 asyncio 阅读全文
posted @ 2022-06-26 23:10 店里最会撒谎白玉汤 阅读(1104) 评论(0) 推荐(0) 编辑
摘要:asyncio还是一个python的单进程单线程程序,比较适合处理那些需要等待的任务。比如网络通信。 async的核心是一个事件循环event loop。event loop控制着任务的调度运行。同时执行的任务只有一个不存在系统级上下文切换和线程不一样。不存在竞争冒险问题,可以明确知道每个task什 阅读全文
posted @ 2022-06-25 00:12 店里最会撒谎白玉汤 阅读(210) 评论(0) 推荐(0) 编辑
摘要:生成器 生成器是一个函数,按照顺序返回一个或多个值。含有关键字yield的函数就是生成器。 def fib(n): a = 0 b = 1 for i in range(n): if not i: yield 1 else: a, b = b, a+b yield b for i in fib(5) 阅读全文
posted @ 2022-06-24 13:31 店里最会撒谎白玉汤 阅读(83) 评论(0) 推荐(0) 编辑
摘要:可迭代对象与迭代器 可迭代协议:可迭代对象必须包含__iter__方法,并且返回一个的迭代器。 满足可迭代协议的对象称为可迭代对象。可迭代对象即可使用for …… in的对象。 迭代协议:满足迭代协议的对象时迭代器。 包含__iter__方法,并且该方法返回迭代器本身 包含__next__方法,调用 阅读全文
posted @ 2022-06-23 22:47 店里最会撒谎白玉汤 阅读(107) 评论(0) 推荐(0) 编辑
摘要:上下文管理器提供了一种申请资源和释放资源的方法,并且能保证离开上下文管理器时,一定会执行释放资源的操作,从语言角度来讲仅可能避免了资源的泄露。 “资源泄漏” 是一个统称,不仅包含了内存泄漏,还包含了文件描述符或句柄泄漏、数据库连接泄漏等,所以后续本文统一使用 “资源泄漏”。 在进入上下文管理器时,先 阅读全文
posted @ 2022-06-23 20:11 店里最会撒谎白玉汤 阅读(42) 评论(0) 推荐(0) 编辑
摘要:装饰器模式( Decorator Pattern )允许向一个现有的事物添加新的功能,同时又不改变其结构。 闭包:能够访问上层局部变量的内层函数 函数内部的局部变量在外部是无法访问的,闭包就是为了可以在函数外部访问函数内部的局部变量或让函数内部变量保存在内存中 def outer(tag): """ 阅读全文
posted @ 2022-06-22 21:41 店里最会撒谎白玉汤 阅读(32) 评论(0) 推荐(0) 编辑
摘要:让函数成为类的友元,让该函数具有和类成员函数相同的访问权限。 friend void func(argument) 在类声明中添加友元函数原型。 虽然友元函数是在类中声明的,但它不是成员函数,不能使用成员运算符来调用。 友元函数虽然不是成员函数,但是它与成员函数具有相同的访问全限。 函数定义不需要类 阅读全文
posted @ 2022-06-20 20:53 店里最会撒谎白玉汤 阅读(82) 评论(0) 推荐(0) 编辑
摘要:运算符重载的函数形式 operator op(argument); op是有效的运算符 #include<iostream> using std::cout; using std::cin; using std::endl; class Complex{ public: float real; fl 阅读全文
posted @ 2022-06-20 16:49 店里最会撒谎白玉汤 阅读(22) 评论(0) 推荐(0) 编辑
摘要:创建对象 class A{ public: int x; A(); A(int); }; //1 A a1; // 使用无参构造 //2 有参构造创建对象 A a2(10); // 第一种方式 A a3 = A(20); // 第二种方式 // 第二种方式,编译器可能有两种方式执行 // 与第一种相 阅读全文
posted @ 2022-06-20 16:10 店里最会撒谎白玉汤 阅读(20) 评论(0) 推荐(0) 编辑
摘要:namespace TANG{ int height; int weight; } namespace GAO{ int height; int weight; } // 名称空间是开放的,可以把名称加入到已有名称空间中 name space TANG{ void func(); } 名称空间提供一 阅读全文
posted @ 2022-06-18 21:06 店里最会撒谎白玉汤 阅读(22) 评论(0) 推荐(0) 编辑
摘要:通常new 负责在堆中找到一个满足要求的内存卡,new运算符还有另一种变体,被称为定位new运算符可以使用指定的位置。可以使用这种特性来设置内存关联规程、处理需要通过特定地址进行访问的硬件或在特定位置创建对象。要使用定位new,需要包含头文件new。 char buffer[100]; int *p 阅读全文
posted @ 2022-06-18 17:28 店里最会撒谎白玉汤 阅读(276) 评论(0) 推荐(0) 编辑
摘要:1. volatile 表明即使程序没用对内存单元进行修改,其值也可能发生变化。 比如一个指针指向一个硬件位置,硬件可能会修改指针所指向的值。 两个 程序互相影响共享数据。 如果编译器发现几条语句两次使用了某个变量,编译不会让程序查找这个值两次,而是将这个值缓存到寄存器中。这种优化假设变量的值在两次 阅读全文
posted @ 2022-06-18 17:02 店里最会撒谎白玉汤 阅读(53) 评论(0) 推荐(0) 编辑
摘要:自动存储连续性:块中的局部变量,程序进入块时被创建,离开块时被销毁。 静态存储连续性:static定义的变量和全局变量,程序运行期间都存在。 线性存储连续性:变量使用关键字thread_local声明时,其生命周期与所属线程一样长。 动态存储连续性:用new运算符分配的内存一直存在知道delete运 阅读全文
posted @ 2022-06-17 13:29 店里最会撒谎白玉汤 阅读(61) 评论(0) 推荐(0) 编辑
摘要:函数模板 通用的函数描述,通过泛型来定义函数。 template <typename AnyType> void swap(AnyType &a, AnyType &b) { AnyType temp = a; a = b; b = temp; } 创建模板在函数原型前使用 template ; 模 阅读全文
posted @ 2022-06-16 22:33 店里最会撒谎白玉汤 阅读(30) 评论(0) 推荐(0) 编辑
摘要:引用变量即变量的别名, 使用&符号创建 int rats; int & rodents = rats; // 引用变量必须在声明时初始化 引用变量可以看作是const指针,不可以指向别处但可以通过其修改值 int * const pr = &rats; 引用变量的主要作用是做函数参数, 称为引用传递 阅读全文
posted @ 2022-06-16 16:34 店里最会撒谎白玉汤 阅读(77) 评论(0) 推荐(0) 编辑
摘要:常规函数调用,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈中,跳到标记函数起点的内存单元。执行函数代码,然后条回到地址被保存的指令出。来回跳跃并记录跳跃位置以唯着使用函数时,需要一定开销。 C++内联函数 编译器会用函数代码替换函数调用,避免了函数调用时程序跳跃的开销。如果函数 阅读全文
posted @ 2022-06-16 14:47 店里最会撒谎白玉汤 阅读(225) 评论(0) 推荐(0) 编辑
摘要:函数原型描述了函数到编译器的接口。将函数返回值类型和参数类型告诉编译器。在使用函数时,如果参数不正确or返回值不匹配(即使进行隐式的类型转换)编译器将捕获这种错误。 函数原型指出了函数的返回类型,编译器就知道应检索多少字节以及如何解释他们。如果没有编译器只能瞎猜。 不使用函数原型让编译器在文件中找效 阅读全文
posted @ 2022-06-15 20:22 店里最会撒谎白玉汤 阅读(29) 评论(0) 推荐(0) 编辑
摘要:c++ 不指定变量的类型,由编译器根据变量的初始值确定。 auto a = 0; // a is int auto b = 0.0; // b is double auto c = 0L; // c is long auto d = 'a'; // d is char c 明示变量为自动存储类型主要 阅读全文
posted @ 2022-06-11 17:37 店里最会撒谎白玉汤 阅读(22) 评论(0) 推荐(0) 编辑
摘要:函数指针 指向函数的指针,存储着函数代码的起始处的地址。 声明数据指针时,要声明指针所指向的数据类型。函数指针要指明函数签名,即参数和返回值 void (*pf) (int n); // 括号的优先级高于*,所以要把*和指针名括起来。 // 可以指向无返回值接收一个整数为参数的函数 函数指针的作用主 阅读全文
posted @ 2022-06-01 17:03 店里最会撒谎白玉汤 阅读(129) 评论(0) 推荐(0) 编辑
摘要:const 用const关键字声明的变量,其值不能通过赋值或递增、递减来修改。 const变量只能声明同时初始化。 float val = 10; const float * pf; // pf 指向一个float类型的const值,可以指向其他值,但不能通过pf修改所指的值 // pt是一个con 阅读全文
posted @ 2022-06-01 13:02 店里最会撒谎白玉汤 阅读(34) 评论(0) 推荐(0) 编辑
摘要:malloc、calloc、free malloc函数接收一个参数:所需内存字节数,返回一个void指针,需要强制类型转换为对应类型。分配失败返回空指针。 calloc接收两个参数,一个所需存储单元数量,一个是存储单元大小 分配的内存要用free释放,free(pointer) #include<s 阅读全文
posted @ 2022-06-01 10:14 店里最会撒谎白玉汤 阅读(21) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示