乙個正在執行的程式或軟體就是乙個程序,是作業系統進行資源分配的基本單位
乙個程式執行後至少有乙個程序,乙個程序預設有乙個執行緒,執行緒依賴程序。
process([group [, target [, name [, args [, kwargs]]]]])
group:指定程序組,目前只能使用none
target:執行的目標任務名
name:程序名字
args:以元組方式給執行任務傳參
kwargs:以字典方式給執行任務傳參
process建立的例項物件的常用方法:
start():啟動子程序例項(建立子程序)
join():等待子程序執行結束
terminate():不管任務是否完成,立即終止子程序
process建立的例項物件的常用屬性:
name:當前程序的別名,預設為process-n,n為從1開始遞增的整數
# 1. 匯入程序包
import multiprocessing
# 2. 建立子程序並制定執行的任務
sub_process = multiprocessing.process(target=任務名)
# 3. 啟動程序執行任務
sub_process.start()
import multiprocessing
import time
def task():
while true:
print('任務執行中...')
time.sleep(0.1)
# 標準python寫法,直接執行的模組,需加上判斷是否是主模組**
if __name__ == '__main__':
# 建立子程序
sub_process = multiprocessing.process(target=task)
sub_process.daemon = true # 法1:子程序守護主程序
sub_process.start()
# 主程序延時0.5s
# 退出主程序之前,先讓子程序進行銷毀
time.sleep(0.5)
sub_process.terminate()
print('退出主程序')
# 結論:主程序會等待子程序完成後程式再退出
# 解決:主程序退出子程序銷毀
# 1. 讓子程序設定為守護主程序,主程序退出子程序銷毀,子程序依賴主程序
# 2. 讓主程序退出之前先讓讓子程序銷毀
# 1. 匯入程序包
import multiprocessing
# 任務1
# task1
def task1():
for i in range(3):
print('do task1...')
# 任務2
def task2():
for i in range(5):
print('deal task2')
# 2. 建立子執行緒(自己動手建立的過程稱為子執行緒,在__init__檔案中已經匯入的process類
task1_process = multiprocessing.process(target=task1)
task2_process = multiprocessing.process(target=task2)
# 3 .啟動程序執行對應的任務
task1_process.start()
# 當前讓主程序等待task1(任務1)的程序執行完成後**再往下執行
task1_process.join()
task2_process.start()
import multiprocessing
def show_info(name, age):
print(name, age)
if __name__ == '__main__':
# 1 以元組方式傳參,元組裡面的元素順序要和函式的引數順序保持一致,注意:若傳入引數只有乙個,需加乙個『,』,元組形式(param,)
sub_process = multiprocessing.process(target=show_info, args=('張三', '18'))
sub_process.start()
# 2 以字典方式傳參,字典裡元素順序不需和函式引數順序保持一致
sub_process = multiprocessing.process(target=show_info,kwargs=)
sub_process.start()
程序間不共享全域性變數
主程序等所有子程序執行結束再結束
程序執行是無序的,由系統任務排程決定
python的高階程式設計 之程序
2013年02月26日 綜合 共 2288字 字型大小 小 中 大 初步了解python多程序 之後,我們可以繼續探索multiprocessing包中更加高階的工具。這些工具可以讓我們更加便利地實現多程序。1.程序池 之前我們使用process建立程序的時候,每次建立乙個程序。程序池 proces...
高階程式設計之程序(二)
進 程 1 程序的退出 return 只有在main函式中執行才能將程序退出。exit 程序退出函式,會自動重新整理快取區。exit 強制退出程序,不會重新整理快取區。2 特殊程序 2.1 孤兒程序 父程序退出,而子程序單獨存在。子程序變成孤兒程序。2.2 殭屍程序 父程序存在,子程序退出。父程序沒...
Linuxc高階程式設計之程序1
1.列印當前所有環境變數的值 2.新增新的環境變數newenv first 3.修改環境變數newenv的值為second 4.列印環境變數newenv的值。源 include include include extern char environ int main int argc,char ar...