zoukankan      html  css  js  c++  java
  • python-线程

    多任务:操作系统可以同时完成多个任务 (单核,双核,四核)
    并发:任务数大于cpu的核数叫并发,多个任务交替执行,并发看起来时一起运行其实时一个假象
    并行:任务数小于或者等于cpu的核数叫并行,并行才能真正意义上多个任务一起运行
    注:线程实现不了并行
     
    线程
    多线程程序的执行顺序时不确定的
    全局变量:如果多个线程同时对同一个全局变量操作,会出现资源竞争问题,从而数据结果会不正确
    同步:同步就是协同步调,按预定的先后次序运行,一个任务执行完成以后另外一个任务才能执行
    互斥锁:保证同一时刻只有一个线程去执行代码,其他线程没有抢到锁会等待
        当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制
        线程同步和加上互斥锁把多任务瞬间改成单任务,性能会下降。
    死锁:以直等待对方释放锁的情景叫做死锁
      创建锁:变量名 = thread.Lock()
      锁定:变量名.acquire()
      释放锁: 变量名.release()
        如果这个锁之前是没有上锁的,那么acquire不会堵塞
        如果在调用acquire对这个锁上所之前,它已经被其他线程上了锁,那么此时acquire会堵塞,直到这个锁被解锁为止。
     
    导入线程模块名:import thread
      创建线程方法:thread.Threading()
      执行线程方法:创建变量名.start()
      threading.active_count() :返回当前进程中线程的个数,返回的个数中包含主进程。
      threading.enumerate() :返回当前运行中的Thread对象列表。线程只有执行后才会放进活动线程列表
      threading.setDaemon(True): 表示守住主线程,主线程退出子线程直接销毁不再执行代码
      threading.current_thread():获取当前代码执行的线程对象
      线程变量名.join():同步线程
     
      注1:主线程会等待子线程执行完才会结束退出
      注2:主线程与子进程之间添加join方法可以存在同步,按预定的先后次序一个一个运行
  • 相关阅读:
    HTML的基本骨架
    2017.7.27
    2017.7.26
    2017.7.25
    2017.7.24
    2017.7.22
    2017.7.21
    Javascript Step by Step
    Javascript Step by Step
    Javascript Step by Step
  • 原文地址:https://www.cnblogs.com/qingchang/p/9036085.html
Copyright © 2011-2022 走看看