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_ ...
随机推荐
- 对vue-router的研究--------------引用
pushState/replaceState/popstate 解析 HTML5提供了对history栈中内容的操作.通过history.pushState/replaceState实现添加地址到hi ...
- css之页面透明
能使元素变的透明的方法有: 1.Opacity 2.RGBA opacity会使后代元素都透明,而RGBA不会!
- cmake 简单操作
实例一: main.c #include <stdio.h> int main( int argc, char *argv[] ) { printf("hello cmake!\ ...
- 不错的图表库:ChartDirector
官网:http://www.advsofteng.com 1)for c++ 2)for .NET 3)for Java 4)for ASP/COM/VB 5)for PHP 6)for Python ...
- AtCoder AGC037D Sorting a Grid (二分图匹配)
题目链接 https://atcoder.jp/contests/agc037/tasks/agc037_d 题解 这场D题终于不像AGC032D和AGC036D一样神仙了-- 还是可做的吧 虽然考场 ...
- js模拟24小时的倒计时效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Unity3D_(游戏)控制物体的上、下、左、右移动
通过键盘上↑.↓.←.→实现对物体的控制 using System.Collections; using System.Collections.Generic; using UnityEngine; ...
- JS框架_(JQbar.js)柱状图动态百分比进度条特效
百度云盘 传送门 密码:q6rt 柱状图动态百分比进度条效果 <html> <head> <title>jqbar.js柱状图动态百分比进度条特效</titl ...
- C++入门经典-例3.23-使用嵌套循环输出乘法口诀表
1:代码如下: // 3.23.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iomanip> #incl ...
- HearthBuddy炉石兄弟 Method 'CollectionDeckBoxVisual.IsValid' not found.
[CollectionManagerScene_COLLECTION] An exception occurred when calling CacheCustomDecks: System.Miss ...