<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
from multiprocessing import Process def func(s): print(s) if __name__ == '__main__': p = Process(target=func, args=('autofelix', )) p.start() p.join()
from multiprocessing import Process def func(s): print(s) if __name__ == '__main__': process = [ Process(target=func, args=('1', )) Process(target=func, args=('2', )) ] [p.start() for p in process] [p.join() for p in process]
Pipe(duplex=True):表示雙工通訊,也就是雙向的,既可以接受也可以傳送資料,預設為True
Pipe(duplex=False):表示單工通訊,也就是單向的,只能進行接受或者傳送資料
from multiprocessing import Process, Pipe def func(conn): print('send a list object ot other side...') # 從管道物件的一端傳送資料物件 conn.send(['33', 44, None]) conn.close() if __name__ == '__main__': # 預設建立一個雙工管道物件,返回的兩個物件代表管道的兩端, # 雙工表示兩端的物件都可以傳送和接收資料,但是需要注意, # 需要避免多個程序或執行緒從一端同時讀或寫資料 parent_conn, child_conn = Pipe() p = Process(target=func, args=(child_conn, )) p.start() # 從管道的另一端接收資料物件 print(parent_conn.recv()) p.join()
join()
處卡死from multiprocessing import Process, Queue def func(q): print('put a list object to queue...') # 向Queue物件中新增一個物件 q.put(['33', 44, None]) if __name__ == '__main__': # 建立一個佇列 q = Queue() p = Process(target=func, args=(q, )) p.start() # 從Queue物件中獲取一個物件 print(q.get()) p.join() ----------------------------------- ©著作權歸作者所有:來自51CTO部落格作者autofelix的原創作品,謝絕轉載,否則將追究法律責任 python 包之 multiprocessing 多程序教學 https://blog.51cto.com/autofelix/5166197
from multiprocessing import Process, Lock def func(lc, num): # 使用鎖保證以下程式碼同一時間只有一個程序在執行 lc.acquire() print('process num: ', num) lc.release() if __name__ == '__main__': lock = Lock() for i in range(5): Process(target=func, args=(lock, i)).start()
from multiprocessing import Process, Value, Array def func(n, a): n.value = 3.333 for i in range(len(a)): a[i] = -a[i] if __name__ == '__main__': # 第一個引數d表示資料型別'double'雙精度浮點型別 num = Value('d', 0.0) # 第一個引數i表示資料型別'integer'整型 arr = Array('i', range(6)) p = Process(target=func, args=(num, arr)) p.start() p.join() print(num.value) print(arr[:])
Pool
程序池物件,並執行提交給它的任務from multiprocessing import Pool import time def f(x): return x * x if __name__ == '__main__': with Pool(processes=4) as pool: # start 4 worker processes # 在程序池中開啟一個新的程序並執行 f 函數 result = pool.apply_async(f, (10,)) # evaluate "f(10)" asynchronously in a single process print(result.get(timeout=1)) # prints "100" unless your computer is *very* slow # map會一直阻塞當前程序直到執行完可迭代物件中的所有元素,並返回結果。 print(pool.map(f, range(10))) # prints "[0, 1, 4,..., 81]" # imap是map方法的延遲執行版本,對於比較消耗記憶體的迭代,建議使用這個方法, it = pool.imap(f, range(10)) print(next(it)) # prints "0" print(next(it)) # prints "1" print(it.next(timeout=1)) # prints "4" unless your computer is *very* slow result = pool.apply_async(time.sleep, (10,)) print(result.get(timeout=1)) # raises multiprocessing.TimeoutError
到此這篇關於python 包之 multiprocessing
多程序的文章就介紹到這了,更多相關python multiprocessing 多程序內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45