03 2023 档案
摘要:# -*- coding: utf-8 -*- # 服务器端代码 import socket import gevent from gevent import monkey monkey.patch_all() def serve(conn): while True: try: data = con
阅读全文
摘要:Pyhton3.10 yield 模拟协程实验 实验原理 协程,单线程解决并发问题 什么是并发? 并发指的是多个任务看起来是同时运行的,并发=切换+保存状态 优点:应用程序级别速度要远远高于操作系统的切换 缺点:线程内其他的任务都不能执行了,一旦引入协程,就需要监测单线程下所有的IO行为,实现遇到I
阅读全文
摘要:应用场景 # 什么时候用池 池的功能是限制启动的进程数或线程数 # 什么时候应该限制 当并发的任务数量远远超过了计算机的承受能力时, 即无法一次性开启过多的进程数或线程数时, 就应该用池的概念,将开启的进程数或线程数限制在计算机的可承受范围内 # 提交任务的两种形式 1. 同步:提交完任务后就在原地
阅读全文
摘要:# -*- coding: utf-8 -*- import copy import random from threading import Timer,current_thread import queue ''' queue 模块中 主要有 queue,simpleQueue,LifoQueu
阅读全文
摘要:# -*- coding: utf-8 -*- ''' 信号量是控制同一时刻并发执行的任务数 默认的 default value 的值是1,此时等同于互斥锁 当semaphore 的值小于0的时候,此时,程序会被阻塞 每次加锁 semaphore 的值减少1,每次解锁加1 有 acquire 和 r
阅读全文
摘要:什么是线程 进程其实不是一个执行单位,进程是一个资源单位 每个进程内自带一个线程,线程才是cpu上的执行单位 如果把操作系统比喻为一座工厂 在工厂内每造出一个车间 》启动一个进程 每个车间内至少有一条流水线 》每个进程内至少有一个线程 线程=》单指代码的执行过程 进程-》资源的申请与销毁的过程 进程
阅读全文
摘要:生产者消费者模型要点 主要使用 JoinableQueue, Process 类 JoinableQueue([maxsize]):这就像是一个Queue对象,但队列允许项目的使用者通知生成者项目已经被成功处理。 通知进程是使用共享的信号和条件变量来实现的。 参数介绍: maxsize是队列中允许最
阅读全文
摘要:# class Dog: # pass # # # print(Dog.__class__,Dog.mro()) # # # class Cat(object): # pass # # # print(Cat.__class__,Cat.mro()) # keywords class to crea
阅读全文
摘要:优先权符号 最高 \ 高 ()、(?:)、(?=)、[] 中 *、+、?、{n}、{n,}、{n,m} 低 ^、$、中介字符 次最低 串接,即相邻字符连接在一起 最低 | 字符描述 \ 将下一个字符标记为一个特殊字符(File Format Escape,清单见本表)、或一个原义字符(Identit
阅读全文