1 # -*- coding: utf-8 -*- 2 # @author: Tele 3 # @Time : 2019/04/02 下午 3:09 4 # 借助shutil使用多进程拷贝文件夹 5 # 使用进程池实现多进程时,使用的消息队列要使用multiprocessing.Manager().... ...
分类:
编程语言 时间:
2019-04-04 20:34:09
阅读次数:
249
Python3.2中引入的concurrent非常的好用,只用几行代码就可以编写出线程池/进程池,并且计算型任务效率和mutiprocessing.pool提供的poll和ThreadPoll相比不分伯仲,而且在IO型任务由于引入了Future的概念效率要高数倍。 而threading的话还要自己维 ...
分类:
编程语言 时间:
2019-03-17 15:55:44
阅读次数:
222
阻塞与非阻塞 阻塞:程序遇到IO操作,导致代码无法继续执行,交出CPU执行权 非阻塞:没有IO操作或者遇到IO操作也不阻塞代码执行 写程序时要尽量减少IO操作 同步与异步 同步:发起一个任务后,必须原地等待任务执行结束,拿到一个明确的结果 异步:发起一个任务后,不需要等待,代码继续往下执行 异步任务 ...
分类:
其他好文 时间:
2019-03-11 18:58:53
阅读次数:
157
1 GIL GIL是一个全局解释器锁,是一种互斥锁 一个python.exe进程中只有一份解释器,如果职工进程开启了多个线程都要执行代码 多线程之间要竞争解释器,一旦竞争就会出现问题 GIL带来的问题是同一时间只有一个线程可以访问解释器 好处是保证了多线程的数据安全 thread-safe 线程安全 ...
分类:
其他好文 时间:
2019-03-08 16:44:35
阅读次数:
167
from multiprocessing import Process from threading import Thread,enumerate,current_thread import time def task(): with open("2.昨日回顾","rt",encoding="ut ...
分类:
编程语言 时间:
2019-03-08 16:36:32
阅读次数:
194
IO 多路复用 就是我们说的select,poll,epoll,有些地方也称这种IO方式为event driven IO。 select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。 它的基本原理就是select,poll,epoll这个function会不断的轮询所负 ...
分类:
Web程序 时间:
2019-03-04 09:35:35
阅读次数:
166
# 导入requests网络请求模块 import requests # 导入lxml标签匹配模块 from lxml import etree # 导入re 正则匹配模块 import re #导入系统路径模块 import os # 导入进程模块 import multiprocessing #... ...
分类:
系统相关 时间:
2019-03-03 22:11:44
阅读次数:
267
当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。 初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Po ...
分类:
系统相关 时间:
2019-03-03 09:55:03
阅读次数:
207
数据共享 Manager 内部管理了很多数据类型,并不是所有的数据类型都是用来做数据分享,只是顺便包含了能够处理数据共享问题的数据类型 list dict 列表/字典 自带的方法基本都是数据安全的,但是对其中的元素进行+= -= *= /= 都是数据不安全的 数据共享:速度很慢,牵扯到锁的问题,一般 ...
分类:
系统相关 时间:
2019-03-01 20:01:59
阅读次数:
255
进程锁和线程锁的写法看起来差不多,进程锁是用来防止使用多进程的时候打印出现混乱。 ...
分类:
系统相关 时间:
2019-02-22 01:06:11
阅读次数:
200