0x00 并行和并发 并行:同时做某些事,可以互不干扰的同一时刻做几件事. 并发:也是同时做某些事,但是强调,同一时刻做了几件事. 0x01 并发的解决: 1)队列.缓冲区: 排队就是队列,先进先出.排队是一种解决并发的方法.排成的队列,其实就是一个缓冲地带,就是缓冲区. 2)优先队列: 在到达队列时优先处理,就是优先队列. 3)争抢: 资源被一个线程占据后,就会锁定资源,其它线程就需要等该线程释放资源再进程争抢.这是一种锁机制. 4)预处理: 提前加载线程需要的数据,缓存场景常用. 5)垂直扩…
Python的进程与线程--思维导图…
Java多线程——进程和线程 摘要:本文主要解释在Java这门编程语言中,什么是进程,什么是线程,以及二者之间的关系. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/3910667.html https://www.cnblogs.com/bobodeboke/p/3901295.html 为什么会有进程 说起进程的由来,我们需要从操作系统的发展历史谈起. 也许在今天,我们无法想象在很多年以前计算机是什么样子.我们现在可以用计算机来做很多事情…
代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. """ 1.创建进程的两种方式 方式一 import os import time from multiprocessing import Process # 实例化一个multiprocessing.Process的对象,并传入一个初始化函数对象 def task(name): print(f'进程…
一.进程与线程的相关概念 1.什么是进程 进程是一个程序在一个数据集上的一次动态执行过程. 进程一般由程序,数据集,进程控制块三部分组成. 2.什么是线程 线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID.程序计数器.寄存器集合和堆栈共同组成.线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能.线程没有自己的系统资源. 3.线程与进程的关系 线程不能独立存在,一个线程肯定有一个父进程.进程也不能独立存在,它一定也包含一个进程.可以理解为进程是…
什么是操作系统       可能很多人都会说,我们平时装的windows7 windows10都是操作系统,没错,他们都是操作系统.还有没有其他的? 想想我们使用的手机,Google公司的Android系统,Apple公司笔记本上的的MacOSX.IPhone的IOS,他们都是操作系统. 那么我们想想,操作系统都可以做什么? 我们买来电脑的后第一件事情就是安装操作系统,有的电脑则在我们买来的时候已经安装好了操作系统,比如说品牌机(Dell.HP.lenovo). 我们可以在操作系统上通过安装程序…
本文是如何<优雅地实现Python通用多线程/进程并行模块>的后续.因为我发现,自认为懂了一点多线程开发的皮毛,写了那么个multi_helper的玩意儿,后来才发现我靠原来就是一坨屎.自己辛苦开发的并行库,在Python的原生类库中就有了优雅地多的实现.并且还有更优雅的asyncio库!这简直让人累觉不爱. 首先,并行和并发是不同的.100个进程可以在1个CPU上并发地执行,但却能在4个CPU上并行地执行.这就能看出两者的不同. 在实际编程中,有大量的计算或IO是一下子无法结束的.那么如何充…
线程的锁 1.几个概念 讲起线程的锁,先要了解几个概念:什么是并行?什么是并发?什么是同步?什么是异步?          并发:是指系统具有处理多个任务(动作)的能力          并行:是指系统具有 同时 处理多个任务(动作)的能力,所以并行是并发的子集          同步:当进程执行到一个IO(比如等待外部数据)的时候,需要等待就是同步          异步:当进程执行到一个IO(比如等待外部数据)的时候,不需要等待,直到接收到数据成功后再返回来执行,就是异步 2.python的…
本节内容 python GIL全局解释器锁 线程 进程 Python GIL(Global Interpreter Lock) In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s…
1  GIL全局解释器锁定义 定义:在一个线程拥有了解释器的访问权后,其他的所有线程都必须等待他释放解释器的访问权,即这些线程的下一条指令并不会互相影响. 缺点:多处理器退化为单处理器 优点:避免大量的加锁解锁操作 无论你启多少个线程,你有多少个cpu,python在执行一个进程的时候会淡定的在同一时刻只允许一个线程运行. Python是无法利用多核cpu实现多线程的 总结: 对于计算密集型任务,python的多线程并没有用 对于IO密集型任务,python的多线程是有意义的 python使用多…