程序的建立 multiprocessing

2022-09-03 17:27:16 字數 2711 閱讀 7394

multiprocessing模組就是跨平台版本的多程序模組,提供了乙個process類來代表乙個程序物件,這個物件可以理解為是乙個獨立的程序,可以執行另外的事情

# -*- coding:utf-8 -*-

from multiprocessing import process

import time

def run_proc():

"""子程序要執行的**"""

while true:

print("----2----")

time.sleep(1)

if __name__=='__main__':

p = process(target=run_proc)

p.start()

while true:

print("----1----")

time.sleep(1)

說明
# -*- coding:utf-8 -*-

from multiprocessing import process

import os

import time

def run_proc():

"""子程序要執行的**"""

print('子程序執行中,pid=%d...' % os.getpid()) # os.getpid獲取當前程序的程序號

print('子程序將要結束...')

if __name__ == '__main__':

print('父程序pid: %d' % os.getpid()) # os.getpid獲取當前程序的程序號

p = process(target=run_proc)

p.start()

process([group [, target [, name [, args [, kwargs]]]]])

process建立的例項物件的常用方法:

process建立的例項物件的常用屬性:

# -*- coding:utf-8 -*-

from multiprocessing import process

import os

from time import sleep

def run_proc(name, age, **kwargs):

for i in range(10):

print('子程序執行中,name= %s,age=%d ,pid=%d...' % (name, age, os.getpid()))

print(kwargs)

sleep(0.2)

if __name__=='__main__':

p = process(target=run_proc, args=('test',18), kwargs=)

p.start()

sleep(1) # 1秒中之後,立即結束子程序

p.terminate()

p.join()

執行結果:

子程序執行中,name= test,age=18 ,pid=45097...

子程序執行中,name= test,age=18 ,pid=45097...

子程序執行中,name= test,age=18 ,pid=45097...

子程序執行中,name= test,age=18 ,pid=45097...

子程序執行中,name= test,age=18 ,pid=45097...

# -*- coding:utf-8 -*-

from multiprocessing import process

import os

import time

nums = [11, 22]

def work1():

"""子程序要執行的**"""

print("in process1 pid=%d ,nums=%s" % (os.getpid(), nums))

for i in range(3):

time.sleep(1)

print("in process1 pid=%d ,nums=%s" % (os.getpid(), nums))

def work2():

"""子程序要執行的**"""

print("in process2 pid=%d ,nums=%s" % (os.getpid(), nums))

if __name__ == '__main__':

p1 = process(target=work1)

p1.start()

p1.join()

p2 = process(target=work2)

p2.start()

執行結果:
in process1 pid=11349 ,nums=[11, 22]

in process1 pid=11349 ,nums=[11, 22, 0]

in process1 pid=11349 ,nums=[11, 22, 0, 1]

in process1 pid=11349 ,nums=[11, 22, 0, 1, 2]

in process2 pid=11350 ,nums=[11, 22]

python多程序之multiprocessing

簡單的理解 單板上執行的乙個程式就是乙個程序。程序是作業系統分配資源的最小單位,不同的程序之間資源不共享,程序間通訊需要使用特定的方式。python提供了自帶的multiprocessing庫,用於多執行緒場景。import multiprocessing import time defworker...

Linux程序 程序的建立

今天學習了linux的程序建立的基本原理,是基於0.11版本核心的。下面對其作一下簡單的總結。一 linux程序在記憶體中的相關資源 很容易理解,linux程序的建立過程就是記憶體中程序相關資源產生的過程,那麼linux程序在記憶體中有哪些相關資源呢?1 task陣列中的一項 乙個指標指向程序的ta...

程序的建立

程序的建立 1.詳解程序建立的幾類函式的說明 fork vfork exec system?1 獲取id include include pid t getpid void 獲取本程序id。pid t getppid void 獲取父程序id 2 啟動程序 a pid tfork void 功能 建...