愚公移山日記 26

2021-10-05 07:39:37 字數 2735 閱讀 6317

學習進度

今天的主要學習成果是學習多程序,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,如果在...