进程是一个执行中的程序,每个进程有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。操作系统管理其上所有进程,并合理分配时间。
  进程也可以通过fork或spawn派生新的进程,每个新进程有自己的内存数据栈,所以只能采用进程间通信(IPC)的方式共享信息。
 
多线程模块:thread与threading
  1、不建议用thread,最明显的一个原因是:在主线程退出之后,所有其他所有线程都会在没有清理的情况下直接退出;而threading会确保在所有“重要的”子线程退出前,保持整个进程的存活。
  2、而且thread模块不支持守护线程的概念,threading支持;如果把一个线程设置守护线程标记,就表示这个线程不重要,退出时不必等待其结束,赋值语句:thread.daemon=True;一个新的子线程会继承父线程的守护标记
  3、thread模块提供了基本的线程和锁定支持;而threading提供了更高级别、功能更全面的线程管理。使用Queue模块,可以创建一个队列数据结构,用于多线程之间共享。
  4、thread以Function作为运行主体,核心函数是:start_new_thread();threading的主要执行对象是Thread类;实例化Thread和调用thread.start_new_thread()的最大区别是新线程不会立即执行。
  5、同步原语:多进程中的某些函数不希望被同时执行,由此有了同步的情况。
  两种类型:锁/互斥;信号量。
  锁是所有机制中最简单、最低级的机制,而信号量用于多线程竞争有限资源的情况。
 
  I/O和访问相同的数据结构都属于临界区,因此需要用锁来防止多个线程同时进入临界区。
  Lock().acquire(),Lock().release();可以简化,使用with语句,此时每个对象的上下文管理器负责在进入该套件之前调用acquire()并在完成执行之后调用release()。
  threading模块的对象Lock、RLock、Condition、Semaphore、BoundedSemaphore都包含上下文管理器,也就是它们都可以使用with语句,with lock

python中的多进程与多线程(一)的更多相关文章

  1. 聊聊Python中的多进程和多线程

    今天,想谈一下Python中的进程和线程. 最近在学习Django的时候,涉及到了多进程和多线程的知识点,所以想着一下把Python中的这块知识进行总结,所以系统地学习了一遍,将知识梳理如下. 1. ...

  2. 深入浅析python中的多进程、多线程、协程

    深入浅析python中的多进程.多线程.协程 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源 ...

  3. Python中的多进程与多线程(二)

    在上一章中,学习了Python多进程编程的一些基本方法:使用跨平台多进程模块multiprocessing提供的Process.Pool.Queue.Lock.Pipe等类,实现子进程创建.进程池(批 ...

  4. 学习笔记--python中使用多进程、多线程加速文本预处理

    一.任务描述 最近尝试自行构建skip-gram模型训练word2vec词向量表.其中有一步需要统计各词汇的出现频率,截取出现频率最高的10000个词汇进行保留,形成常用词词典.对于这个问题,我建立了 ...

  5. python中的多进程与多线程(二)

    1.使用多线程可以有效利用CPU资源,线程享有相同的地址空间和内存,这些线程如果同时读写变量,导致互相干扰,就会产生并发问题,为了避免并发问题,绝不能让多个线程读取或写入相同的变量,因此python中 ...

  6. Python中的多进程、多线程和协程

    本文中的内容来自我的笔记.撰写过程中参考了胡俊峰老师<Python程序设计与数据科学导论>课程的内容. 并发处理:多进程和多线程 前置 概念: 并发:一段时间内同时推进多个任务,但不一定要 ...

  7. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  8. Python中的多进程与多线程/分布式该如何使用

    在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global interpreter lock(也被亲切的称为“GIL”)指指点点,说它阻碍了Python的多线程程序同时 ...

  9. Python中使用多进程来实现并行处理的方法小结

    进程和线程是计算机软件领域里很重要的概念,进程和线程有区别,也有着密切的联系,先来辨析一下这两个概念: 1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和 ...

随机推荐

  1. wpf UI 元素类型

  2. wordpress搭建自己的博客~

    去官方网站下载wordpress,并解压缩.下载链接:https://cn.wordpress.org/ wordpress是一款开源的PHP框架,搭建个人博客网站最实用的选择之一,甚至你都不需要懂P ...

  3. Xcodebuild ipa shell

    命令行下打包iOS App工程: #!/bin/sh # # How To Build ? #http://www.jianshu.com/p/3f43370437d2 #http://www.jia ...

  4. DG_数据文件转换参数测试

    本篇博客流程图: 一.测试需求及参数说明 二.测试环境进行相关测试 三.问题总结 一.测试需求及参数说明 1.1测试需求说明 DG切换 切换前,数据库版本12.2.0.1,主库rac两节点,备一rac ...

  5. HTML知识点梳理1

    1,HTML基本结构 <!DOCTYPE html> <html> <head></head> <body> </body> & ...

  6. [LeetCode&Python] Problem 202. Happy Number

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  7. Linux下修改Jenkins默认端口

    我是自动安装的Jenkins,默认目录为 jenkins安装目录:/var/lib/jenkins jenkins日志目录:/var/log/jenkins/jenkins.logjenkins默认配 ...

  8. java库中具体集合

    ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrayDeque  一种用循环数组实现的双端队列 HashSet ...

  9. Window系统下搭建GIT本地服务器

    转载:https://blog.csdn.net/qwer971211/article/details/71156055

  10. (27)session(设置值、取值、修改、删除)

    session的由来 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西, ...