python高階程式設計之程序

2021-10-24 18:21:58 字數 2492 閱讀 4843

乙個正在執行的程式或軟體就是乙個程序,是作業系統進行資源分配的基本單位

乙個程式執行後至少有乙個程序,乙個程序預設有乙個執行緒,執行緒依賴程序。

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...