02进程

 1 """
 2 如何开启一个进程
 3 if __name__ == '__main__':原理
 4     main 的原理  它是分配资源的
 5     os
 6     Process
 7     fun
 8     用对象开启一个进程,需要再次开启资源,
 9     import  父进程文件
10     加main的话就不用开一个又开一个进程,在Windows中的时候。
11     在linux系统中运行的话
12     copy了一份父进程中的东西
13 
14 父进程与子进程之间的关系
15     父进程要负责回收子进程的资源
16     父进程结束
17     子进程结束后父进程才结束
18     父进程结束,父进程代码显示结束了但是代码不会运行结束,会先回收子进程的资源,子进程结束后父进程才结束
19     两个print先打印结束
20 
21 进程有什么特点?
22     空间数据是完全隔离的,进程跟进程之间是隔离的不共享的
23 返回值   不可以 子进程中的东西是返不回去的
24 
25 join
26 
27 面向对象开启进程
28 """
29 
30 import os
31 import time
32 # print(os.getpid())   # 运行的那一刻就是当前py文件的进程号,她的父id是pycharm的id
33 # print(os.getppid())
34 from multiprocessing import Process
35 
36 n = 10
37 
38 
39 def fun(num):
40     global n
41     n = 100
42     # print("我得id是%s,父id是%s" % (os.getpid(), os.getppid()))   # 我得id是19876,父id是20532
43     print(num)
44     print("小明")
45 
46 
47 # fun()
48 # print(n)   # 100
49 
50 
51 if __name__ == '__main__':
52     # print("我得id是%s,父id是%s" % (os.getpid(), os.getppid()))   # 打印出来的是当前py的id  我得id是20532,父id是12012
53     p = Process(target=fun, args=[2])  # 实例化对象,元组是一个元素的话一定要加逗号
54     p.start()  # 开启子进程
55     print("结束")
56     print(n)  # 10
57 
58 """
59 第二部分向下开始
60 join方法
61 """
62 import os
63 import time
64 import random
65 from multiprocessing import Process
66 
67 
68 # 以下是同步效果
69 def fun(num):
70     print("%s号小明发邮件" % (num))
71 
72 
73 if __name__ == '__main__':
74     for i in range(10):   # 开十个进程
75         p = Process(target=fun, args=(i,))  # 实例化对象
76         p.start()  # 开始子进程
77         p.join()   # 阻塞,等子进程结束
78     print("发送结束")
79 
80 
81 # 以下是异步效果
82 def fun(num):
83     print("%s号小明发邮件" % (num))
84 
85 
86 if __name__ == '__main__':
87     list = []  # 来一个空列表放新添加的对象
88     for i in range(10):  # 先循环此代码,开启所有的进程,循环十次,下面执行十次相当于创建十个进程
89         p = Process(target=fun, args=(i,))  # 实例化对象,元组一个元素的时候必须加逗号
90         p.start()  # 开始子进程
91         list.append(p)  # 把每个对象添加在列表中,之后在进行阻塞
92     for j in list:  # 再循环此代码,按执行完的顺序阻塞
93         j.join()  # 阻塞,直到子进程执行完毕
94     print("发送结束")  # 最后打印结束

 

posted @ 2020-04-03 10:02  吹散思绪  阅读(101)  评论(0编辑  收藏  举报