學習進度
今天的主要學習成果是學習多程序,queue模組,佇列的基本用法如下:
'''
佇列是multiprocessing模組提供的乙個類
建立佇列
放值取值
'''import multiprocessing
# 建立佇列
# 佇列是multiprocessing模組提供的乙個類
# multiprocessing.queue(n)表示佇列的長度。
queue = multiprocessing.queue(5)
# 放值
# queue.put(值)
queue.put(1)
queue.put(
'hello'
)queue.put([1
,2,3
])queue.put((1
,3,4
))queue.put(
)# 長度為五,當第六個資料進入後,佇列進入阻塞狀態,缺省會等待佇列先取出值再放入新的值
# queue.put_nowait()表示放入值,如果已滿不再等待,直接報錯
# 取值
vaule = queue.get(
)print
(vaule)
print
('__'*20
)vaule = queue.get(
)print
(vaule)
print
('__'*20
)vaule = queue.get(
)print
(vaule)
print
('__'*20
)vaule = queue.get(
)print
(vaule)
print
('__'*20
)# ------佇列已經沒有值了--------
# 當對佇列已經空的時候,在這get程式進入阻塞狀態,等待放入新的值到佇列,然後再取。
# vaule = queue.get()
# print(vaule)
# print('__' * 20)
# get_nowait()當佇列已空,不會等待放入新的值
vaule = queue.get_nowait(
)print
(vaule)
print
('_____'
*10)
佇列中的判斷:
'''
判斷是否已滿
判斷是否為空
取出佇列中的小訊息個數
'''import multiprocessing
#建立乙個隊列為三的佇列
queue = multiprocessing.queue(3)
queue.put(2)
put = queue.put(1)
queue.put(3)
#判斷是否已滿
# queue.full() 判斷佇列是否已經滿了 true 為滿 false 為不滿
isfull = queue.full(
)print
('isfll------->'
, isfull)
value = queue.get(
)# 取出佇列中的訊息個數
print
('訊息個數:'
, queue.qsize())
value = queue.get(
)# 判斷是否已經為空 true 為空 fales 為非空
isempty = queue.empty(
)print
('isempty----->'
, isempty)
在程序之間也是可用有資料的溝通,需要用到佇列來進行程序通訊:
import time
import multiprocessing
defwrite_queue
(queue)
:for i in
range(10
):if queue.full():
print
('佇列已滿'
)break
queue.put(i)
print
('寫入成功:'
, i)
time.sleep(1)
defread_queue
(queue)
:while
true
:if queue.qsize()==
0:print
('佇列已經空'
)break
value = queue.get(
)print
('已經讀取'
, value)
if __name__ ==
'__main__'
:# 建立程序池
pool = multiprocessing.pool(2)
# 建立程序池中的佇列
queue = multiprocessing.manager(
).queue(5)
# 使用程序池執行任務
# 同步方式/
# 非同步方式
(queue,))
result.wait(
)(queue,))
pool.close(
) pool.join(
)
愚公移山日記 11
學習進度 今天的學習內容確實有點少,主要是剛買到一本新書,一本很基礎的書,有一本新書,肯定是要看的呀,但是書本的內容實在是太基礎,但是又害怕直接跳過,會錯過寫什麼內容,畢竟python的內容實在是太豐富了。下面我來根據子所學的內容,和自己的實踐經驗來給各位分享一下吧。idle的使用介紹 氣泡排序法 ...
愚公移山日記 20
學習進度 我寫的日記倒不如說是筆記,今天的學習也算可以,敲了乙個udp聊天的例項,不是很多,但是 的註解叫我很是費腦筋,敲了好多,唯恐描述不清楚,也並非有大胸懷去教會他人,只求在以後偶然翻看,自己能理解。說明在我學習的這些課程均用到linux系統的終端,虛擬機器,由於本人能力有限制,並不能保證所有 ...
愚公移山日記 23
網域名稱 網域名稱解析系統,主要適用於將網域名稱轉換成對應的ip位址。瀏覽器訪問伺服器的過程 瀏覽器與伺服器建立連線時,是先去訪問dns伺服器,返回網域名稱相對應的ip位址,再去將得到的ip位址區連線相應的伺服器,由伺服器返回給我們資訊。當然在實際的訪問過程中,建立連線時,會先訪問本地dns,如果在...