# -*- coding:utf-8 -*-
"""pid=os.fork()
1.只用在unix系統中有效,windows系統中無效
2.fork函式呼叫一次,返回兩次:在父程序中返回值為子程序id,在子程序中返回值為0
"""import os
pid=os.fork()
if pid==0:
print("執行子程序,子程序pid=,父程序ppid=".format(pid=os.getpid(),ppid=os.getppid()))
else:
print("執行父程序,子程序pid=,父程序ppid=".format(pid=pid,ppid=os.getpid()))
# -*- coding:utf-8 -*-
"""process常用屬性與方法:
name:程序名
pid:程序id
run(),自定義子類時覆寫
start(),開啟程序
join(timeout=none),阻塞程序
terminate(),終止程序
is_alive(),判斷程序是否存活
"""import os,time
from multiprocessing import process
def worker():
print("子程序執行中》 pid=,ppid=".format(os.getpid(),os.getppid()))
time.sleep(2)
print("子程序終止》 pid=".format(os.getpid()))
def main():
print("主程序執行中》 pid=".format(os.getpid()))
ps=# 建立子程序例項
for i in range(2):
p=process(target=worker,name="worker"+str(i),args=())
# 開啟程序
for i in range(2):
ps[i].start()
# 阻塞程序
for i in range(2):
ps[i].join()
print("主程序終止")
if __name__ == '__main__':
main()
# -*- coding:utf-8 -*-
import os,time
from multiprocessing import process
class myprocess(process):
def __init__(self):
process.__init__(self)
def run(self):
print("子程序開始》 pid=,ppid=".format(os.getpid(),os.getppid()))
time.sleep(2)
print("子程序終止》 pid={}".format(os.getpid()))
def main():
print("主程序開始》 pid={}".format(os.getpid()))
myp=myprocess()
myp.start()
# myp.join()
print("主程序終止")
if __name__ == '__main__':
main()
# -*- coding:utf-8 -*-
import os,time
from multiprocessing import pool
def worker(arg):
print("子程序開始執行》 pid={},ppid={},編號{}".format(os.getpid(),os.getppid(),arg))
time.sleep(0.5)
print("子程序終止》 pid={},ppid={},編號{}".format(os.getpid(),os.getppid(),arg))
def main():
print("主程序開始執行》 pid={}".format(os.getpid()))
ps=pool(5)
for i in range(10):
# 關閉程序池,停止接受其它程序
ps.close()
# 阻塞程序
ps.join()
print("主程序終止")
if __name__ == '__main__':
main()
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...
python多程序 Python多程序實踐
建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...
python多程序 Python多程序程式設計詳解
本文 在 python 3.6 環境下測試通過。多程序 multiprocessing 模組是在 python 2.6 版本中加入的,和多執行緒 threading 模組類似,都是用來做並行運算的。不過python既然有了threading,為什麼還要搞乙個multiprocessing呢?這是因為...