自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python線程編程解決異步線程中速度不同的方案

開發(fā) 后端
你在線程處理的過程中你會(huì)遇到關(guān)于線程等待這一狀況嗎?如果你想解決相關(guān)的問題我們的文章Python線程編程的實(shí)際應(yīng)用方案的描述就能解答相關(guān)問題。

在計(jì)算機(jī)的實(shí)際相關(guān)的應(yīng)用中你是否對(duì)兩個(gè)相關(guān)異步線程速度產(chǎn)生不同時(shí),而產(chǎn)生一些相關(guān)的問題,針對(duì)這一相關(guān)問題,Python線程編程就可以巧妙的解決相關(guān)的問題,以下是文章的具體介紹。

我們經(jīng)常會(huì)采用生產(chǎn)者/消費(fèi)者關(guān)系的兩個(gè)線程來處理一個(gè)共享緩沖區(qū)的數(shù)據(jù)。例如一個(gè)生產(chǎn)者線程接受用戶數(shù)據(jù)放入一個(gè)共享緩沖區(qū)里,等待一個(gè)消費(fèi)者線程對(duì)數(shù)據(jù) 取出處理。但是如果緩沖區(qū)的太小而生產(chǎn)者和消費(fèi)者兩個(gè)異步線程的速度不同時(shí),容易出現(xiàn)一個(gè)線程等待另一個(gè)情況。

為了盡可能的縮短共享資源并以相同速度工作 的各線程的等待時(shí)間,我們可以使用一個(gè)“隊(duì)列”來提供額外的緩沖區(qū)。

創(chuàng)建一個(gè)“隊(duì)列”對(duì)象

  1. import Queue  
  2. myqueue = Queue.Queue(maxsize = 10)Queue.Queue 

類即是一個(gè)隊(duì)列的同步實(shí)現(xiàn)。隊(duì)列長(zhǎng)度可為無限或者有限??赏ㄟ^Queue的構(gòu)造函數(shù)的可選參數(shù)maxsize來設(shè)定隊(duì)列長(zhǎng)度。如果maxsize小于1就表示隊(duì)列長(zhǎng)度無限。將一個(gè)值放入隊(duì)列中

 

  1. myqueue.put(10) 

調(diào)用隊(duì)列對(duì)象的put()方法在隊(duì)尾插入一個(gè)項(xiàng)目。put()有兩個(gè)參數(shù),***個(gè)item為必需的,為插入項(xiàng)目的值;第二個(gè)block為可選參數(shù),默認(rèn)為1。如果隊(duì)列當(dāng)前為空且block為1,put()方法就使調(diào)用線程暫停,直到空出一個(gè)數(shù)據(jù)單元。如果block為0,put方法將引發(fā)Full異常。將一個(gè)值從隊(duì)列中取出

 

  1. myqueue.get() 

調(diào)用隊(duì)列對(duì)象的get()方法從隊(duì)頭刪除并返回一個(gè)項(xiàng)目??蛇x參數(shù)為block,默認(rèn)為1。如果隊(duì)列為空且block為1,get()就使調(diào)用線程暫停,直至有項(xiàng)目可用。如果block為0,隊(duì)列將引發(fā)Empty異常。我們用一個(gè)例子來展示如何使用

  1. Queue# queue_example.py 

以上的內(nèi)容就是對(duì)Python線程編程的相關(guān)實(shí)際應(yīng)用方案的部分介紹。

【編輯推薦】

  1. python教程在例10.4 備份腳本的代碼的介紹
  2. python開發(fā)windows程序中的編譯代碼示例與介紹
  3. Python vim檢查編碼在文件中的對(duì)應(yīng)編碼的介紹
  4. Python目錄文件在實(shí)際應(yīng)用操作方案詳解
  5. Python os.walk 在遍歷目錄中的實(shí)際應(yīng)用步驟

 

責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2023-08-02 08:03:08

Python線程池

2023-06-13 13:39:00

多線程異步編程

2023-08-01 08:43:29

Python多線程

2009-09-14 19:39:14

批量線程同步

2009-07-15 17:09:32

Swing線程

2021-02-04 09:13:03

Session異步線程

2021-06-28 08:10:59

JavaScript異步編程

2023-10-18 09:27:58

Java編程

2011-02-24 12:53:51

.NET異步傳統(tǒng)

2024-12-27 08:11:44

Python編程模式IO

2009-07-14 11:30:15

Swing線程

2021-08-12 14:33:20

Python多線程編程

2023-05-10 07:47:08

Python并發(fā)編程

2023-06-07 13:49:00

多線程編程C#

2010-03-15 14:33:09

Python線程編程

2009-03-12 10:52:43

Java線程多線程

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門

2024-10-14 08:29:14

異步編程任務(wù)

2024-10-16 09:34:50

2023-10-18 15:19:56

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)