07 2020 档案
摘要:epoll的用法 epoll get started 这一章先了解epoll的用法,epoll是一个多路复用器,用来在单线程中处理多个socket链接,它由3个函数组成: int epoll_create(int size); int epoll_ctl(int epfd, int op, int
阅读全文
摘要:yield 是产出的意思,就是返回一个值,这一点有点像return,但是不会结束函数的执行。那它什么时候继续执行呢?等待下一次迭代器被调用时候返回上次中断的地方, 利用这个特性可以实现range函数: def my_range(max_num): i = 0 while i < max_num: y
阅读全文
摘要:这俩是操作系统中的概念,区别: 并发 指一个操作系统能运行多个程序的能力 并行 指一个操作系统能同时运行多个程序的能力 一个运行在单核操作系统安装了QQ和微信,它俩都能打开并收发消息,这叫并发;这一个CPU核心只要让QQ运行0.1秒再交替让微信运行0.1秒, 它俩就能看起来同时运行了。 Web应用中
阅读全文
摘要:因为GIL的存在,每次只能执行一个线程,那Python还存在变量同步的问题么? 声明一个变量,起两个线程各对这个变量加100,0000次,观察结果是否为200,0000 预期: 如果不为200,0000,那说明Python的变量也需要同步。 代码: import threading import t
阅读全文
摘要:由于GIL(Global Interpreter Lock)的存在使得在同一时刻Python进程只能使用CPU的一个核心,也就是对应操作系统的一个 内核线程,对于一个Python web程序,如果有个请求,并且都是长耗时的计算任务(占用),这个程序在接受第一个请求后 还能处理别的请求么?假如web程
阅读全文
摘要:Python使用引用计数、分代算法回收垃圾,引用计数操作方法: 对象被引用一次,其计数器+1 对象被del,其计数器-1 对象的引用计数为0时候会被回收 python的__del__方法,类似java的finalize方法,会在对象被回收时执行。 实验验证 实验1: 删除仅引用一次的对象 步骤: 创
阅读全文
摘要:作用 守护线程会在非守护线程执行完毕时就结束,即使自己还没有执行完,就是守着别的线程, 别的线程不跑了它也不跑了,有点仆从的感觉。 设计用例验证 第一个用例:实验组 操作: 启动两个线程,一个是守护的一个不是 既然守护线程要守着别人,那就让别人跑的快,自己跑的慢,守护线程打印100个数, 别的线程什
阅读全文
摘要:功能说明 在代码执行过程中收集一些日志,但是这个操作是与业务无关的,需要根据运行环境来决定 是否要执行这些操作, 一个解决办法: 在代码中加点儿收集日志的标记,比如“注释”,既不会对改变原有代码的结构又能实现功能, 入侵性比较低。 那就需要解释器能识别“注释”并翻译成代码执行了,比如对于以下代码:
阅读全文
浙公网安备 33010602011771号