python 进程和串行(——)
进程
1、什么是串行?
串行:就是一个程序完完整整的运行完了,下个程序才运行。
2、什么是进程?
进程:一个正在运行的程序或一个程序运行的过程。
为什么要用进程。
提高程序执行效率。
多道技术:并发技术的诞生之源
多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中,占用内存是
彼此隔离的,而且是物理层面隔离的,遇到io切换,下个程序运行,这样cpu不用等io完,才工作,大大提高了效率
时间上的复用:多个任务共用一个cpu,一个任务占用cpu时间过长,或者有另外一个优先级更高的任务抢走
cpu,cpu也在不断的切换的执行,仿并发,效率低。
总结:多进程不适合,计算密集型
3、进程两种调用方法。
import time from multiprocessing import Process def task(x):
print('%s is running'%x)
time.sleep(3)
print('%s is done'%x) if __name__ == "__main__":为什么要加这个?因为在windows操作系统,复制父进程的内容,是以模块导入的形式,如果不这样写,创建一个子进程,初始复制主进程的内容,会不断的被创建
#process(target=task,kwargs={'x':'子进程'})
p = Process(target=task,args=('子进程',))
#为什么不是子进程先运行,
p.start()#只是在操作系统发送一个开启子进程的信号,操作系统要为其开辟一个操作空间,然后父进程初始化子进程,才能运行,时间过度太长,主程序,已经可以运行完了
print('主')
2.第二中调用方法:
import time from multiprocessing import Process class Myprocess(Process):
def __init__(self,x):
super().__init__()
self.name = x #调用Process的run方法
def run(self):
print('%s is running'%self.name)
time.sleep(3)
print('%s is done'%self.name) if __name__ == "__main__":
p = Myprocess('子进程1')
#不好的是子进程只能开一个
p.start() #p.run()
print('主')
python 进程和串行(——)的更多相关文章
- Python并发编程系列之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程
1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前 ...
- python之爬虫_并发(串行、多线程、多进程、异步IO)
并发 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢 import requests def fetch_async(url): res ...
- 进程与程序 并行 并发 串行 阻塞 join函数
进程是正在运行的程序,程序是程序员编写的一对代码,也就是一堆字符,当这堆代码被系统加载到内存并执行,就有了进程. (需要注意的是:一个程序是可以产生多个程序,就像我们可以同时运行多个QQ程序一样,会形 ...
- [Python]ctypes+struct实现类c的结构化数据串行处理
1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...
- 12.python进程\协程\异步IO
进程 创建进程 from multiprocessing import Process import time def func(name): time.sleep(2) print('hello', ...
- Python进程-实现
multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分计算密集型任务使用多进程.如果想要充分地使用多核CPU的资源(os.cpu_count()查看) ...
- python 进程 线程
进程 线程 操作系统 为什么要有操作系统? 操作系统:操作系统是一个用来协调,管理和控制计算机硬件和软件资源的系统程序.位于底层硬件与应用软件之间 工作方式:向下管理硬件 向上提供接口 切换 1.出现 ...
- python/进程线程的总结
python/进程线程的总结 一.进程和线程的描述: 进程:最小的资源管理单位 线程:最小的执行单位 执行一个进程时就默认执行一个线程(主线程) 进程和线程的工作方式: 串行: 假如共有A.B.C任务 ...
- python进程、进程池(二)代码部分
第一种创建进程的方式: from multiprocessing import Process def f(name): print(name,"在子进程") if __name_ ...
随机推荐
- 初识容器和Docker
什么是Docker? Docker 是一个用于开发,交付和运行应用程序的开放平台.能够就应用程序和基础架构分开,从而可以快速的交付软件. 借助Docker可以和管理应用程序的方式来管理基础架构. 使用 ...
- 通俗易懂的例子解释 IAAS、SAAS、PAAS 的区别
你一定听说过云计算中的三个“高大上”的你一定听说过云计算中的三个“高大上”的概念:IaaS.PaaS和SaaS,这几个术语并不好理解.不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你 ...
- 【leetcode】1244. Design A Leaderboard
题目如下: Design a Leaderboard class, which has 3 functions: addScore(playerId, score): Update the leade ...
- dockerfile:python-cuda-nvidia-cudnn
centos7 FROM centos:7 MAINTAINER yon@DataExa.com RUN yum -y install make wget \ && wget -O / ...
- OpenCV笔记(5)(定位票据并规范化、调库扫描文本)
一.定位和变换票据 定位照片中的不规范票据或矩形文本,并将其变换为正规矩形,以供OCR识别. # -*- coding:utf-8 -*- __author__ = 'Leo.Z' import cv ...
- poj 3579 Median 二分套二分 或 二分加尺取
Median Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5118 Accepted: 1641 Descriptio ...
- POI 生成excel
POI生成原生Excel-工具类 https://www.jianshu.com/p/2dfe7fe7d02e JAVA poi 帮助类 https://www.cnblogs.com/Ca ...
- DS博客作业8——课程总结
1.当初你是如何做出选择计算机专业的决定的? 本来我在集美大学第一志愿专业是理学院的数据科学与大数据,奈何隔壁县城小伙伴比我高了2分,我就来到了网络,但经过我和她的交流,我意识到我们的课程差不多,同样 ...
- 《统计学习方法(李航)》讲义 第03章 k近邻法
k 近邻法(k-nearest neighbor,k-NN) 是一种基本分类与回归方法.本书只讨论分类问题中的k近邻法.k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类 ...
- Why are dashes preferred for CSS selectors / HTML attributes?
Why are dashes preferred for CSS selectors / HTML attributes? I use dashes because I don't have to h ...