Python基礎9 程序和訊息佇列

2021-09-10 06:27:54 字數 2097 閱讀 4379

程序、守護程序、訊息佇列

'''

#程序:程序中會有執行緒(主線程),cpu會排程執行緒,程序是為了分配資源

'''import multiprocessing, time

def show():

for i in range(5):

print('show')

time.sleep(0.2)

def info():

for i in range(5):

print('info')

time.sleep(0.2)

if __name__ == '__main__':

ft = multiprocessing.process(target=show)

#sc = multiprocessing.process(target=info)

#設定守護程序

ft.daemon = true

ft.start()

#sc.start()

time.sleep(0.3)

#守護程序,讓子程序終止,效果同ft.daemon = true

ft.terminate()

#主程序也會等待子程序結束後才結束

print(multiprocessing.current_process())

#程序之間不能共享全域性變數

my_list =

def add_data():

for i in range(3):

print(i)

time.sleep(0.3)

print(my_list)

def read_data():

print('read', my_list)

if __name__ == '__main__':

add_m = multiprocessing.process(target=add_data)

read_m = multiprocessing.process(target=read_data)

add_m.start()

#程序等待,後面的**要等這個程序執行完畢以後才執行

add_m.join()

read_m.start() #結果為

#程序之間通訊,通過佇列

import multiprocessing, time

#建立佇列

queue = multiprocessing.queue(3)

#新增queue.put(1)

queue.put(2)

queue.put(3)

#queue.put(4)#如果佇列已經滿了,等待

#獲取佇列,佇列先進先出

print(queue.get())

print(queue.get())

print(queue.get())

#程序使用佇列通訊

def add_data(queue):

for i in range(3):

# print(i)

queue.put(i)

time.sleep(0.3)

#print(my_list)

#解決一直等待的問題

queue.put(none) #等get掉乙個之後,none就會新增進去

def read_data(queue):

# print('read', my_list)

while true:

value = queue.get()#隊裡空了,會等待

#解決等待問題

if value == none:

break

print(value)

if __name__ == '__main__':

queue = multiprocessing.queue(3)

add = multiprocessing.process(target=add_data,args=(queue,))

read = multiprocessing.process(target=read_data, args=(queue,))

add.start()

read.start()

python 基礎 執行緒 和 程序

程序執行緒 同一程序中,資訊共享和通訊。訪問差異會導致結果不一致。python程式中由global interpreter lock gil 主迴圈中要求只能有乙個控制線程執行。import time import threading threading.thread 是執行緒 每個執行緒的內容,等...

3 2 2 佇列訊息和非佇列訊息

摘錄於 windows程式 第5版,珍藏版 charles.petzold 著 p60 前面提過 windows 將訊息傳送給乙個視窗,意思是說 windows 呼叫了該視窗的視窗過程。但是,乙個 windows 程式同時還具有乙個訊息迴圈使用者從訊息佇列中檢索和分發訊息,其中檢索訊息是通過呼叫 g...

python基礎學習9

文字編輯器讀取檔案內容的流程 階段1 啟動乙個檔案編輯器 文字編輯器如nodepad pycharm,word 階段2 檔案編輯器會將檔案內容從硬碟讀入記憶體 階段3 文字編輯器會將剛剛讀入記憶體中的內容顯示到螢幕上 python直譯器執行檔案的流程 階段1 啟動python直譯器,此時就相當於啟動...