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())