所謂資料傳遞,就是兩個程序都可以訪問這個資料,非修改。程序間資料傳遞有兩種方式。
1.與執行緒一樣,用queue
2.管道
1.queue
"""
程序1.匯入模組 是大寫的queue
2.定義子程序函式 傳入queue的變數值
2.1函式形參 ()傳入queue的變數值()
2.2 新增資料 qq.put()
3.建立程序
3.1 建立程序(乙個函式,乙個queue值)
3.2 啟動程序 p.start() 與執行緒一樣
3.3 得到值 p.get()
此**就是子程序裡新增資料
父程序訪問了這個資料
實現了程序間的資料互動
"""from multiprocessing import process, queue
def f_process(qq):
qq.put([42, none, 'hello'])
#process_main 主程序
#f_process 子程序
def process_main():
q_process = queue() #建立乙個程序的queue
p_process = process(target=f_process, args=(q_process,)) #建立乙個子程序p q_process 對應f_process的qq
p_process.start() #程序啟動
data =q_process.get() # 得到queue資料
print(data) # 列印data資料 [42, none, 'hello']
p_process.join()
if __name__ == '__main__':
process_main()
2. 管道
"""
資料傳遞:
1.建立管道 parent_conn, child_conn = pipe()
2.子發 f中 conn.send()
父收 f中 conn.recv()
3.兩邊次數要一樣,不一樣時會出現阻塞
資料共享:兩個程序可以修改乙份資料
"""from multiprocessing import process, pipe
def f(conn):
conn.send([42, none, 'hello']) #子程序 可傳送
redata=conn.recv() #子程序 可接收
conn.close()
if __name__ == '__main__':
parent_conn, child_conn = pipe() #1.建立乙個鏈路 父程序 子程序
p = process(target=f, args=(child_conn,))
p.start()
print(parent_conn.recv()) # 父程序 可接收 prints "[42, none, 'hello']"
parent_conn.send("父程序傳送資料") # 父程序 可傳送
p.join()
Python3 0的新改動
這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見 python3.0的文件。common stumbling blocks 本段簡單的列出容易使人出錯的變動 初學者應該注意 old print the answer is 2 2 new print the ...
python 3 0操作mysql資料庫
mysqldb目前還不支援python3.0,可以用pymysql代替 一 安裝方法 pip install pymysql 二 連線資料庫 import pymysql 開啟資料庫連線 db pymysql.connect 172.20.100.64 root coship cdnmsb021 使...
Python 3 0最簡單的爬蟲
做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為3.0的關係,無法直接使用,根據2.0版本的 進行修改後成功了。如下 coding utf 8 import urllib.request import re 該函式用於獲取html內容 使用到urlopen的函式 ...