第一部分:任務分發端
第二部分:任務處理端#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @time : 17/9/17 上午10:49
# @author : mylovin
# @file : multiprocess_server.py
# @software: pycharm
# @說明 : 多程序例項----分發任務端
#匯入必備標頭檔案;
import multiprocessing
from multiprocessing.managers import basemanager
import queue#注意:python2.7中,queue是大寫;但是python3中是小寫!
#繼承basemanager類
class
queuemanager
(basemanager):
pass
#建立任務佇列和結果佇列
get_task_queue = queue.queue()
get_result_queue = queue.queue()
#在網路上註冊
queuemanager.register("get_task_queue", callable=lambda :get_task_queue)
queuemanager.register("get_result_queue", callable=lambda :get_result_queue)
#建立多程序管理員,需要指定位址和埠,用於主從之間連線,同時需要驗證碼進行驗證
manager = queuemanager(address=("127.0.0.1", 5000), authkey=b"multiprocessing")
#啟動manager.start()
#獲取任務佇列和結果佇列
task = manager.get_task_queue()
result = manager.get_result_queue()
for i in range(10):
task.put(i)
for i in range(10):
v = result.get(timeout=5)
print(v)
#結束manager.shutdown()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @time : 17/9/17 上午10:49
# @author : mylovin
# @file : multiprocess_worker.py
# @software: pycharm
# @說明 : 多程序例項----執行任務端
import multiprocessing
import queue
from multiprocessing.managers import basemanager
class
queuemanager
(basemanager):
pass
queuemanager.register("get_task_queue")
queuemanager.register("get_result_queue")
manager = queuemanager(address=("127.0.0.1", 5000), authkey=b"multiprocessing")
manager.connect()
task = manager.get_task_queue()
result = manager.get_result_queue()
for i in range(10):
value = task.get(timeout=2)
result.put(value*value)
python學習之多程序
在介紹多程序之前,首先介紹下作業系統獲取關於程序中的一些資訊 方法描述 os.getpid 獲取當前程序的pid os.getppid 獲取當前程序的父程序的pid 在python中,我們一般都是通過引入multiprocessing模組來實現多程序程式設計,multiprocessing模組提供了...
python之多程序
要讓python實現多程序 multiprocessing 我們先來了解作業系統相關知識。unix 和 linux 作業系統提供了乙個 fork 函式系統呼叫,它非常特殊。普通的函式,呼叫一它次,執行一次,但是 fork 函式呼叫一次執行兩次,因為作業系統自動把當前程序 稱為父程序 複製了乙份 稱為...
python學習筆記之多程序
我們現代的作業系統,都是支援 多工 的作業系統,對於操程式設計客棧作系統來說,乙個任務就是乙個程序 process 比如開啟乙個瀏覽器就是啟動乙個瀏覽器程序。如果我們將計算器的核心cpu比喻為一座工廠,那麼程序就像工廠裡的車間,它代表cpu所能處理的單個任務。任一時刻,cpu總是執行乙個程序,其他程...