1. 程式人生 > 其它 >python中多程序的使用

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

下篇繼續!