摘要: python中可以使用thread(_thread)、threading和Queue模块来实现多线程编程。thread的功能没有threading强大、完善,而且当主线程结束时其它线程会强制退出,不会发出警告也不会进行适当的清理。所以最好使用threading,threading功能更完善,而且当重 阅读全文
posted @ 2022-07-01 23:08 店里最会撒谎白玉汤 阅读(62) 评论(0) 推荐(0)
摘要: 事件循环event loop 是asyncio的核心,会运行异步任务和回调,执行网络IO操作,运行子进程。 一个事件循环同一时刻只运行一个任务,只是利用了任务的等待时间,当某个任务需要等待某种资源or某种操作完成的时候,event loop转去调度其他task让其运行。 获取事件循环 asyncio 阅读全文
posted @ 2022-06-26 23:10 店里最会撒谎白玉汤 阅读(1319) 评论(0) 推荐(0)
摘要: asyncio还是一个python的单进程单线程程序,比较适合处理那些需要等待的任务。比如网络通信。 async的核心是一个事件循环event loop。event loop控制着任务的调度运行。同时执行的任务只有一个不存在系统级上下文切换和线程不一样。不存在竞争冒险问题,可以明确知道每个task什 阅读全文
posted @ 2022-06-25 00:12 店里最会撒谎白玉汤 阅读(243) 评论(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 店里最会撒谎白玉汤 阅读(93) 评论(0) 推荐(0)
摘要: 可迭代对象与迭代器 可迭代协议:可迭代对象必须包含__iter__方法,并且返回一个的迭代器。 满足可迭代协议的对象称为可迭代对象。可迭代对象即可使用for …… in的对象。 迭代协议:满足迭代协议的对象时迭代器。 包含__iter__方法,并且该方法返回迭代器本身 包含__next__方法,调用 阅读全文
posted @ 2022-06-23 22:47 店里最会撒谎白玉汤 阅读(125) 评论(0) 推荐(0)
摘要: 上下文管理器提供了一种申请资源和释放资源的方法,并且能保证离开上下文管理器时,一定会执行释放资源的操作,从语言角度来讲仅可能避免了资源的泄露。 “资源泄漏” 是一个统称,不仅包含了内存泄漏,还包含了文件描述符或句柄泄漏、数据库连接泄漏等,所以后续本文统一使用 “资源泄漏”。 在进入上下文管理器时,先 阅读全文
posted @ 2022-06-23 20:11 店里最会撒谎白玉汤 阅读(52) 评论(0) 推荐(0)
摘要: 装饰器模式( Decorator Pattern )允许向一个现有的事物添加新的功能,同时又不改变其结构。 闭包:能够访问上层局部变量的内层函数 函数内部的局部变量在外部是无法访问的,闭包就是为了可以在函数外部访问函数内部的局部变量或让函数内部变量保存在内存中 def outer(tag): """ 阅读全文
posted @ 2022-06-22 21:41 店里最会撒谎白玉汤 阅读(62) 评论(0) 推荐(0)
摘要: 让函数成为类的友元,让该函数具有和类成员函数相同的访问权限。 friend void func(argument) 在类声明中添加友元函数原型。 虽然友元函数是在类中声明的,但它不是成员函数,不能使用成员运算符来调用。 友元函数虽然不是成员函数,但是它与成员函数具有相同的访问全限。 函数定义不需要类 阅读全文
posted @ 2022-06-20 20:53 店里最会撒谎白玉汤 阅读(95) 评论(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 店里最会撒谎白玉汤 阅读(35) 评论(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 店里最会撒谎白玉汤 阅读(30) 评论(0) 推荐(0)