zoukankan      html  css  js  c++  java
  • 线程

    线程  :

      开启线程:

      from threading import Thread

      t = Thread(target = func, args  =(i,)

      t.start() # 开始线程

      t.clock() # 关闭向操作系统申请线程

      Thread的方法:

        锁  : 

          互斥锁  Lock

            在一个线程中不能连续多次使用acquire

            lock = Lock() #创建一把锁

            lock.acquire()获取钥匙

            lock.release()归还钥匙

          递归锁 RLock

            在一个线程中可以多次使用acquire

            可以快速回复死锁的服务

            lock = RLock() #创建一把递归锁

            lock.acquire()

            lock.release()

       信号量 Semaphore:  互斥锁+计数器

          s = Semaphore(5) #限制几个线程同时获取锁的钥匙

       事件 Event 

        e = Enent() 创建一个事件

        e.wait() #等待状态True 非阻塞

        e.set() 设置信号变成True

        e.clear() 设置信号变成False

        is_set  查看信号是否为True

       定时器 : Timer

          t = Timer(0.5,func) # 创建线程时候就规定多久执行

      条件 : Condition

      acquire  获取钥匙

      release 归还钥匙

      wait  阻塞

      notify  解除wait的阻塞

        

  • 相关阅读:
    mongodb 的安装历程
    从C的声明符到Objective-C的Blocks语法
    #译# Core Data概述 (转)
    避免在block中循环引用(Retain Cycle in Block)
    GCD和信号量
    Blocks的申明调用与Queue当做锁的用法
    [译]在IB中实现自动布局
    清理Xcode的技巧和方法
    SVN的Status字段含义
    iOS应用崩溃日志揭秘2
  • 原文地址:https://www.cnblogs.com/wy3713/p/9392011.html
Copyright © 2011-2022 走看看