對Python中建立程序的兩種方式以及程序池詳解

2022-10-04 18:09:08 字數 1694 閱讀 1021

在python中建立程序有兩種方式,第一種是:

from multiprocessing import process

import time

def test():

while true:

print('---test---')

time.sleep(1)

if __name__ == '__main__':

p=process(target=test)

p.start()

while true:

print('---main---')

time.sleep(1)

上面這段**是在windows下跑的,通過process類可以建立乙個程序物件,然後p.start()即可開啟程序,test函式是你想程序實現的功能。

第二種方式是:

from multiprocessing import process

import time

class mynewprocess(process):

def run(self):

while t

print('---1---')

time.sleep(1)

if __name__=='__mian__':

p = mynewprocess()

# 呼叫p.start()方法,p會先去父類中尋找start(),然後在process的start方法中呼叫run方法

p.start()

while true:

pr程式設計客棧int('---main---')

time.sleep(1)

這裡是第二種建立程序的方式,通過子類繼承process類,子類中必須有run方法,裡面實現程序功能,建立子類物件之後,呼叫物件的starqowxptt方法。

下面來說一下程序池,就是實現已經建立好的程序

# 程序池

from multiprocessing import pool

import os

import random

import time

def worker(num):

for i in range(5

print('===pid=%d==num=%d='%(os.getpid(),num))

time.sleep(1)

# 3表示程序池中最多有三個程序一起執行

pool=pool(3)

for i in range(10):

print('---%d---'%i)

# 向程序中新增任務

# 注意:如果新增的任務數量超過了程序池中程序的個數的話,那麼就不會接著往程序池中新增,如果還沒有執行的話,他會等待前面www.cppcns.com的程序結束,然後在往

# 程序池中新增新程序

pool.apply_async(worker,(i,))

pool.close() # 關閉程序池

pool.join() # 主程序在這裡等待,只有子程序全部結束之後,在會開啟主線程

大家可以看到在pool方法就是建立了乙個程序池,3表示建立程序數,通過pool.apply_async( )將子程序新增到程序池中,pool.close( )表示關閉程序池,一定要新增join函式,否則主程序直接崩了,看不到程序池中子程序的現象。

本文標題: 對python中建立程序的兩種方式以及程序池詳解

本文位址:

Python中建立程序的兩種方式以及程序池

在python中建立程序有兩種方式,第一種是 from multiprocessing import process import time def test while true print test time.sleep 1 if name main p process target test ...

python建立程序的兩種方式

執行緒內的任務不會同時執行,可以解決的方法是在每個程序裡面執行乙個執行緒,可以實現。gil的限制 multiprocessing管理程序的包,threading.thread用來管理執行緒 程序可以解決併發,但是相關的訊息無法互動,需要借助別的例如pipe和queue 但是在使用的時候仍有資源的消耗...

python 多程序的兩種建立方式

python中使用執行緒有兩種方式 函式或者用類來包裝執行緒物件。第一種 函式 import time import threading defcoding for x in range 3 print 正在寫 s threading.current thread 獲取程序名字 time.sleep...