Python多线程--(1)之基本概念
来源:互联网 发布:马氏链模型matlab编程 编辑:程序博客网 时间:2024/06/07 00:13
多线程
线程与进程
进程(重量级进程):一个执行中的程序。拥有自己的地址空间、内存、数据栈以及用于跟踪执行的辅助数据。进程可以派生新的进程来执行其他任务,进程之间只能采用进程间通信(IPC)的方式共享信息。
线程(轻量级进程):在同一进程下进行,可以共享相同的上下文。线程一般是并行方式执行的。主线程+各个线程。
threading模块
Thread:一个线程的对象,含有:name,ident,daemon,init()、start()、run()、join()、getName()、setName()。可以选择将Thread直接实例化传入target函数和args参数。或者将threading.Thread子类化,然后使用子类。
Lock:锁原语
支持守护线程,也就是,守护线程是不需要主线程等待它结束的。在treading中用thread.daemon=True就会将线程标记为守护线程。子线程会继承父线程的守护标记
同步原语:
一般在多线程代码中,会有一些特定的函数或代码块不希望被多个线程同时进行,(通常包括修改数据库、更新文件或其他会产生竞态条件的情况)此时就需要同步。
锁:两种状态分别是锁定和未锁定,支持两种函数,获得锁和释放锁。当多线程竞争锁时,先得到锁的线程进入临界区执行代码,其余线程被阻塞等待锁释放后再次竞争。获得锁是随机的,会根据Python的实现的不同有所区别。
信号量:它是一个计数器。当资源消耗是递减,资源释放是递增。代表资源是否可用。当一个线程对一个资源完成操作时,该资源会返回资源池中。acquire和release。信号量比锁更加灵活,因为可以有多个线程,每个线程拥有有限资源的一个实例。
阅读全文
0 0
- Python多线程--(1)之基本概念
- 多线程基本概念(1)
- iOS多线程(1)基本概念
- 多线程之基本概念篇
- Java多线程之基本概念
- JAVA多线程系列之基本概念
- 1、Linux多线程,基本概念
- 1、Linux多线程,基本概念
- 多线程(一)基本概念
- Python 之 多线程同步(1)
- C#多线程之旅(1)——介绍和基本概念
- Windows多线程编程 [1] 基本概念
- 多线程入门教程(二)基本概念
- Java多线程:(一)基本概念
- 多线程入门教程(二)基本概念
- 深入浅出Win32多线程程序设计之基本概念
- 深入浅出Win32多线程程序设计之基本概念
- 深入浅出Win32多线程程序设计之基本概念
- Spring4.3+Hibernate5.2.10整合
- 数独-dfs
- java 实现二叉树【递归/非递归】
- bzoj 3208: 花神的秒题计划Ⅰ
- 为何将INF设置为0x3f3f3f3f
- Python多线程--(1)之基本概念
- shape与reshape
- create 与 store中的关系
- hi3516a制作内核和文件系统
- 百度DNS解析过程
- hdu 6053 TrickGCD(筛法+容斥)
- hdu6034(Balala Power!)
- Spring MVC I18N 国际化配置
- java加密之AES/ECB/PKCS5Padding