zoukankan      html  css  js  c++  java
  • day 34 GIL锁,线程队列,线程池及线程池回调函数

    一 . GIL锁

      GIL锁是python代码转解释器代码的一个锁

      

       虽然我们加锁的原因是因为要保护安全性从而降低了效率,但是加锁也会出现安全性的问题!

      

      

    二 . 线程队列

      import queue

      三种队列形式

      1 . class queue.(maxsize = 0)    # 先进先出

      2 . class queue.LifoQueue(maxsize = 0)  #先进后出,后进先出

      3 . class queue.PriotityQueue(maxsize = 0)   #优先级队列,参数是:元祖(1,‘ 2 ’)  1是优先级,  ‘ 2 ’是数据

      这三种队列都是线程安全的,不会出现多个线程抢占同一个资源或数据的情况。

    三 . 线程池基本方法及回调函数

      ProcessPoolExecutor  :线程池的导入模块,提供异步调用

      回顾下进程池:ThreadPoolExecutor    进程池的导入模块,提供异步调用

      from  concurrent.futures  import  ThreadPoolExecutor,ProcePoolExecutor

      from   multiprocessing   import   pool    (模块导入有点长,需要记一下)

      线程池的基本方法:

      1 . submit(fn,*args,**kwargs)   #   异步提交任务

      2 . map(func,*iterables,timeout=None,chunksize = 1)    #  映射,取代for 循环submit 的操作

      3 . shutdown    #(wait = True)  相当于进程吃的pool.close( )+pool.join( ) 操作

      4 . result(timeout = None)    # 取得结果

      5 . add_done_callback(fn)    #  回调函数

       

       

  • 相关阅读:
    实现一个与内容合二为一的ActionBar动画效果
    hdoj 1506&&1505(City Game) dp
    remine chart2安装
    zoom的学习
    海哥:T2C时代的到来了,那么什么叫T2C?
    minhash算法
    动态创建按钮的JS
    socket编程在windows和linux下的区别
    http staus汇总
    MySQL HINT:Straight_JOIN
  • 原文地址:https://www.cnblogs.com/liuteacher/p/10058685.html
Copyright © 2011-2022 走看看