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_ ...
随机推荐
- windows笔记本命令行方式建立wifi热点
建立热点: @echo off netsh wlan set hostednetwork mode=allow netsh wlan set hostednetwork ssid=热点名 key=密码 ...
- c++拓展register寄存器
寄存器----硬件和软件打交道的接口,这上面装了android,亦或是 windows,linux就能和相关的操作系统设备打交道 早期硬件性能并不很快时,为了提高程序运行的效率,会声明一个寄存器变量, ...
- std::setw(size)与std::setfill(char)
头文件:#include <iostream>#include <iomanip>using namespace std; 功能: std::setw :需要填充多少个字符, ...
- webpack打包,同时将ES6转为ES5,初探
webpack打包,同时将ES6转为ES5,第一次尝试搞了一下午才弄好,所有的问题均来自ES6转es5上面,可能天分不够把,但愿各大浏览器快点支持ES6吧!忽略nodejs安装. 第一,新建一个项目文 ...
- css 设置头像图片不变形
css 设置头像图片不变形 在样式中加 object-fit: cover 就可以了
- META标签的设置
㈠定义及用法 ⑴<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. ⑵<meta> 标签位于文档的头部,不 ...
- jquery disabled选择器 语法
jquery disabled选择器 语法 作用:disabled 选择器选取所有禁用的表单元素.大理石平台价格表 语法:$(":disabled") jquery disable ...
- css之页面透明
能使元素变的透明的方法有: 1.Opacity 2.RGBA opacity会使后代元素都透明,而RGBA不会!
- XCTF简单的php
看看源码 <?php show_source(__FILE__); include("config.php"); $a=@$_GET['a']; $b=@$_GET['b'] ...
- LeetCode 98. 验证二叉搜索树(Validate Binary Search Tree)
题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也 ...