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

2021-08-10 01:34:02 字數 1504 閱讀 4008

在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 true:

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

time.sleep(1)

if __name__=='__mian__':

p = mynewprocess()

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

p.start()

while true:

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

time.sleep(1)

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

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

# 程序池

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)

# 向程序中新增任務

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

# 程序池中新增新程序

pool.close() # 關閉程序池

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

python建立程序的兩種方式

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

python threading 兩種建立方式

作用 建立在thread模組之上,可以更容易地管理多個執行執行緒。通過使用執行緒,程式可以在同乙個程序空間併發地執行多個操作。threading模組建立在thread的底層特性基礎上,可以更容易地完成執行緒處理。1 呼叫函式 要使用thread,最簡單的方法就是用乙個目標函式例項化乙個thread物...

python 多程序的兩種建立方式

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