process(target=,args=,).start() join()
p = pool(num) #建立乙個包含有num個空閒程序的池子
建立大規模任務,pool(100)
from mutliprocessing import pool
process(target,args),lock()
**p.close() **
p.join()
p.terminate()
程序池的工作的返回值:
res.get()
pipe() 程序池通訊沒有管道
queue()
from multiprocessing import pool,manager,queue
from time import sleep
import sys
import os
#pid,ppid = os.fork() #核心函式
#if ppid == 0: 子程序
#if pid > 0: 父程序
def work_a(q):
#生產者 放十次
for var in range(10):
print('生產者:',var)
sys.stdout.flush()
q.put(var)
sleep(1)
def work_b(q):
#消費者,拿十次
for var in range(10):
res = q.get() #阻塞行為
print('消費者:',var)
sys.stdout.flush()
#cpu 過來處理報錯 終止程序,丟擲錯誤
def main():
q = manager().queue() #程序共享佇列
p = pool(5) #程序可以復用
p.close()
p.join()
if __name__ == '__main__':
main()
from multiprocessing import pool
import sys
def work_a():
for var in range(1,2000):
print(var)
sys.stdout.flush()
return 'a'
def work_b():
for var in range(2000,4000):
print(var)
sys.stdout.flush()
return 'b'
def work_c():
for var in range(4000,6000):
print(var)
sys.stdout.flush()
return 'c'
def main():
p = pool(4) #引數:可以最多同時執行任務個數,並不是填充的最大任務個數
print('a程序:%s' % a.get()) #生成器
print('b程序:%s' % b)
print('c程序:%s' % c)
p.close() #先關閉程序池,不代表程序池中的任務要停止
#關閉了之後打不開了
p.join()
if __name__ == '__main__':
main()
from multiprocessing import pool
import sys
def work_a():
for var in range(1,2000):
print(var)
sys.stdout.flush()
def work_b():
for var in range(2000,4000):
print(var)
sys.stdout.flush()
def work_c():
for var in range(4000,6000):
print(var)
sys.stdout.flush()
def main():
p = pool(2) #引數:可以最多同時執行任務個數,並不是填充的最大任務個數
#?: 是否是阻塞行為執行完這三個任務
#阻塞的話:1個等乙個,同步
#非阻塞:非同步
p.close()
p.join()
if __name__ == '__main__':
main()
程序池 執行緒池
程序池和執行緒池相似,所以這裡我們以程序池為例介紹,下面對程序池的討論完全適用於執行緒池 如果沒有特殊宣告 程序池是由伺服器預先建立的一組子程序,這些子程序的數目在3 10個之間 典型情況 執行緒池的數量應該和cpu數量差不多。程序池中的所有子程序都執行者相同的 並具有相同的屬性。因為程序池在伺服器...
執行緒池 程序池
執行緒池 程序池 池子解決什麼問題?1.建立 銷毀執行緒伴隨著系統開銷,如果過於頻繁會影響系統執行效率 2.執行緒併發數量過多,搶占系統資源,從而導致系統阻塞甚至宕機 3.能夠剛好的控制和管理池子裡面的執行緒和程序 concurrent.futures模組提供了高度封裝的非同步呼叫介面 thread...
程序池, 執行緒池
知識儲備 池 裝載固定數量介質,該介質值得是程序或者執行緒 為什麼要用?讓機器在自己可承受的範圍內去保證乙個高效的工作 from concurrent.futures import processpoolexecutor,threadpoolexecutor pool processpoolexec...