进程笔记

创建进程

from multiprocessing import Process

def run1():

    for i in range(5):

        print('run1-{i}')

        time.sleep(1)


def run2():

    for i in range(5):

        print('run2-{i}')

        time.sleep(1)

if __name__=="__main__"

p1=process(target=run1)

p2=process(target=run2)

p1.start()

p2.start()



创建多个函数 

一创建进程

'''

python 

Process 函数必须包含一个target 参数,指定创建进程的函数名称

p1= process(target=run1)

"'

执行进程

'''

python

p1.start()

"'

进程对象join 方法的意思:阻塞进程

'''

python

p1.join()

"'

获取进程编号

子进程的编号:os.getpid()

主进程的编号:os.getppid()

带有参数的进程


传递非关键字参数

传递关键字参数

def run1(name,age=0):

    print('run1',name,age)

# 给进程传递非关键字参数,需要定义args 参数,类型是 远足或者列表

#给进程传递关键字参数,需要定义kwargs 参数,类型是字典

p1=Process(target=run1,args=('a',),kwargs={'age':10})


守护进程

作用:当主进程结束之后,不管子进程有没有结束,当前所有进程全部结束

方法:子进程对象.daemon=Ture 

可变对象:可以对数据内部进行增删改操作

列表,字典,集合

不可变对象: 字符串,元祖,整型

#先拷贝:把对象的一堆数据拷贝一份,放入到新的内存中

变量.copy()

a=[1,2,[3,4]]

b=a.copy()

输出:[1, 2, [3, 4]]

#深拷贝:把对象的所有数据全部拷贝一份,放入到新的内存中

copy.deepcopy() 

import copy

a=[1,2,[3,4]]

b=copy.deepcopy(a)

能够使用with 语法,必须在类中定义两个方法

__enter__

__exit__

class A:

def__enter__(self):

#实例化

def__exit__(self):

#关闭

##多进程之间数据不共享,如果需要多进程之间数据共享,最常用的三种方式

管理器 manager

队列 queue

管道 pipe

套接字 sock(不常用)

##进程池

为什么要使用进程池:因为不会频繁的创建和销毁进行,所以节省资源

进程池中一般创建多少个进程,效率最高:电脑中 CPU核数 的两位

创建进程的步骤

1.导包

from multiprocessing import Pool

if __name__='__main__':

2.创建进程池

Pool 方法中的参数就是 初始化创建 进程的数量

pool = Pool(3)

# 3.用进程池执行进程

apply_async 中第一个参数就是 函数的名称

pool.apply_async(函数名称)

# 4.先关闭进程池

pool.close()

#5.等待所有的请求处理完成之后,再去销毁进程池的资源

pool.join()

闭包一定要满足3个条件

1.外层函数一定要包含一个内层函数

2.外层函数一定返回内层函数的函数名称

3.内层函数一定是使用外层函数的变量

##python 中的多线程是伪线层,因为GIL(全局解释性锁)的存在,所以多线程中CPU的执行时并发的

##GIL: 全局解释性锁

# 多线程的创建方式

导包: from threading import Thread

创建多个线程: 

t1= Thread(target=run1)

执行

t1.start()

#等待子进程执行结束之后,再执行主线程

t1.join()

##守护线程

作用:主线程结束之后,不管子进程有没有结束,整个程序就结束

使用方式:子进程对象.setDaemon(True)

# 多线程之间数据是共享的,但是共享会数据错乱,所以必须加锁

加锁方法: lock.acquire()

释放锁: lock.release()

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343