python中多程序的使用
程序(Process)是資源分配的最小單位,它是作業系統進行資源分配的基本單位,通俗理解:一個正在執行的程式就是一個程序。例如:正在執行的QQ、微信等他們都是一個程序。
注意:一個程式執行後至少有一個程序
多程序可以完成多工,每個程序就好比一家獨立的公司,每個公司都各自在運營,每個程序也各自在執行,執行各自的任務。![]
多程序的使用:
"""
多程序的基本使用
學習目標:能夠使用多程序同時執行兩個不同的任務函式
"""
import time
匯入程序包
import multiprocessing
學習函式
def study():
for i in study(5):
print('學習中...')
time.sleep(1)
玩耍函式
def paly():
for i in range(5):
print('玩耍中...')
time.sleep(1)
if name == 'main':
# 建立一個程序,執行 dance 函式
# 注意:target指定的是函式名或方法名,切忌!!!不要再函式名或方法名後加()
study_process = multiprocessing.Process(target=study)
# 再建立一個程序,執行 sing 函式 play_process = multiprocessing.Process(target=play) # 啟動這兩個程序 study_process.start() play_process.start()
程序使用的注意點介紹:
1)程序之間不共享全域性變數
注意:建立子程序時,子程序會把主程序的東西全部複製一份
2)主程序會等待所有的子程序執行結束再結束
注意點1:程序之間不共享全域性變數
import multiprocessing
import time
定義全域性變數
g_list = []
新增資料的函式
def add_data():
for i in range(5):
g_list.append(i)
print('add:', i)
time.sleep(0.2)
print('add_data:', g_list)
讀取資料的函式
def read_data():
print('read_data:', g_list)
if name == 'main':
# 建立新增資料的子程序
add_data_process = multiprocessing.Process(target=add_data)
# 建立讀取資料的子程序
read_data_process = multiprocessing.Process(target=read_data)
# 啟動新增資料子程序
add_data_process.start()
# 主程序等待 add_data_process 執行完成,再向下繼續執行
add_data_process.join()
# 啟動讀取資料子程序
read_data_process.start()
print('main:', g_list)
注意點2:主程序會等待所有的子程序執行結束再結束
import multiprocessing
import time
任務函式
def task():
for i in range(20):
print('任務執行中...')
time.sleep(0.2)
if name == 'main':
# 建立子程序並啟動
sub_process = multiprocessing.Process(target=task)
sub_process.start()
# 主程序延時 1s
time.sleep(1)
print('主程序結束!')
# 退出程式
exit()
下篇繼續!