zoukankan      html  css  js  c++  java
  • 多线程

    进程:

      优点:同时利用多个cpu,能够同时进行多个操作

      缺点:消耗资源(重新开辟内从空间)

    线程:

      优点:共享内存,IO操作的时候m,创造并发操作

      缺点:抢占资源

    进程不是越多越好,cpu个数=进程个数

    线程也不是越多越好,请求上下文切换耗时

    线程锁 threading.Rlock  和 threading.lock

    threading.Event

    Event 是线程通信最间的机制之一,一个线程发送一个event 信号,其他的线程则等待这个信号。用于主线程控制其他线程的执行,Events 管理一个flag,这个flag可以使用set(),

    设置成True或者使用clear()重置为false,wait()则用于阻塞,在flag为True之前,flag默认为False

    Event.wait([timeout]):堵塞线程,直到Event对象内部标识位被设计为True或超时

    Event.set():将标识位设为True

    Event.clear():将标识伴设为False

    Event.isSet:判断标识位是否为True

    创建线程

    import time

    import threading

      def f0():

        

      def f1(a1):

        time.sleep(10)

        f0()

    t = threading.Thread(target=f1,args=(123,))

    t.setDaemon(True)   ##主线程是否等待子线程

    t.start()

    print('111')

    t.join()  # 一个一个执行,括号内可以传入参数,等待这个参数的时间如果上一个线程任务没有执行完,直接执行下一个

    print('222')

    event 事件

    import threading

    def do(event):

      print('红灯')

      event.wait()

      print('红灯')

    event_obj = threading.Event()

    for i in rang(10):

      t = threading.Thread(target=do,args=(event_obj,))

      t.start()

     

    event_obj.clear()

    inp =input('输出':)

    if inp =='True':

      event_obj.set()

  • 相关阅读:
    hashlib 库
    包--json 与 pickle 模块
    模块
    叠加多个装饰器,列表生成式,字典生成式,匿名函数
    函数的递归调用和二分法
    Redis之哨兵模式
    Redis之集群
    Redis之主从复制
    Django之redis-session
    Python操作redis
  • 原文地址:https://www.cnblogs.com/huangguabushihaogua/p/9465325.html
Copyright © 2011-2022 走看看