人工智能学习之python 多线程 迭代器 生成器 property 属性 正则表达式 注意点


线程:
    线程依附于进程    cpu调度的基本单位 每个进程至少包含一个线程 此线程为主线程
    在进程中创建一个新的新的线程 这个线程为子线程
    线程用来实现多任务编程
    同一个进程中的线程数据可以共享
线程创建步骤:
    1.导包                import threading
    2.通过线程类创建线程对象        t1 = threading.Thread(target=函数名)
    3.启动线程任务
注意点:
    线程直接执行是无序的   因为cpu调度 cpu在做着高平切换
    主线程会等待所有子线程执行结束后在结束
    线程直接可以全局共享   
    多线程操作共享可能出现安全问题 so会使用互斥锁解决

cpu调度资源测略;
    1.抢占式
    2.均分时间片

多线程共享全局变量
    丢次数原因: 多线程共享全局变量 会抢资源 所以会出现丢失
    线程同步 方法 加锁
互斥锁:
    对共享数据进行锁定,保证同一时刻只有一个线程去操作
    也就是抢锁 谁先抢到锁 谁先运行
创建互斥锁:
    1.创建锁    mutex = threading.Lock()
    2.上锁    mutex.acquire()
    3.释放锁    mutex.release()
区别与进程:


迭代器:
    遍历集合元素的标准方式
    range()就是一个迭代器
    什么是迭代器:
        自定义类 只要重写__iter__() 返回当前对象     __next__() 返回当前值,并且更新当前值  方法就可以称之为迭代器
    目的:
        1.隐藏底层逻辑,使用户 用起来方便
        2.惰性加载,用的时候才能获取

    可以通过 for 循环或 next() 函数进行遍历 取值


生成器:
    根据制定的规则生成数据,数据不是一次性生成而是一个一个生成的
    目的:节省大量内存
    创建方式:
        1.生成器推导式 即 ge = (i for i in range(8))
        2.yield关键字  干了三步                         def mygenerater(n):
                1.创建生成器            for i in range(n):
            2.把值存储到生成器             yield i
            3.返回生成器
                                                                        
    可以通过 for 循环遍历 或 next() 函数取下一个值
    
    strir() 去掉末尾\n  \t  头尾空格   也就是说 去掉字符串首尾的空白字符
    math.ceil() 向上取整

property 属性
    实现方式
    1.装饰器方法
        @property  修饰   获取值的函数
        @获取值的函数.setter  修饰设置值的函数
        之后就可以直接.上述函数名.吧函数当做变量来使用
    2.类属性 
        类属性名 = property(获取值的函数名,设置值的函数名)
        之后就可以直接.上述函数名.吧函数当做变变量来使用
    特点:把函数当做变量来使用


正则表达式:    其他语言也有
    匹配或者查找符合某些规则的字符串  就可以使用正则表达式了
    功能:
        1.数据验证
        2.数据检索
        3.数据隐藏
        4.数据过滤 .............等等
    re模块 匹配的
        1.导入模块  
        2.使用match方法匹配
            名字 =  re.match('正则表达式','要校验的字符串')
        3.如果匹配成功用group方法提取
            名字.group()
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值