03-11 51—55

______egon新书python全套来袭请看:https://egonlin.com/book.html

51.什么是反向代理和反向代理?

# 答案:
'''
反向代理,这个词相信搞网络的朋友都很熟悉的,但是具体是什么意思呢?说实话,复杂的我也不懂,就我个人理解而言,反向代理有很多用途,比如说保护真实服务器不被外界攻击,加速网络等等。今天我们要介绍的就是加速网络的一种。
'''

52.创建进程:

'''
1.首先要导入multiprocessing中的Process;
2.创建一个Process对象;
3.创建Process对象时,可以传递参数;

1.p = Process(target=XXX, args=(元组,) , kwargs={key:value}) 
2.target = XXX 指定的任务函数,不用加() 
3.args=(元组,) , kwargs={key:value} 给任务函数传递的参数 
4.使用start()启动进程;
5.结束进程。
'''

53.给子进程指定函数传递参数Demo:

import os
from multiprocessing import Process
import time
def pro_func(name, age, **kwargs):
	for i in range(5):
	print("子进程正在运行中,name=%s, age=%d, pid=%d" %(name, age, os.getpid()))
	print(kwargs)
	time.sleep(0.2)
if __name__ == '__main__':
	# 创建Process对象
	p = Process(target=pro_func, args=('小明',18), kwargs={'m': 20})
	# 启动进程
	p.start()

time.sleep(1) # 1秒钟之后,立刻结束子进程 17.
p.terminate()
p.join() 注意:进程间不共享全局变量。

54.进程之间的通信-Queue

在初始化Queue()对象时,(例如q=Queue(),若在括号中没有指定最大可接受的消息数量,或数
量为负值时,那么就代表可接受的消息数量没有上限-直到内存的尽头)

55.进程间通信Demo:

from multiprocessing import Process, Queueimport os, time, random # 写数据进程执行的代码:def write(q):
for value in ['A', 'B', 'C']:
	print('Put %s to queue...' % value)
	q.put(value)
	time.sleep(random.random())
posted @ 2019-10-22 21:24  小猿取经-林海峰老师  阅读(661)  评论(0编辑  收藏  举报