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