成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Python多進(jìn)程中如何使用Queue傳輸數(shù)據(jù)

1. 準(zhǔn)備工作打開VMware虛擬化軟件,啟動(dòng)Ubuntu虛擬機(jī),并登錄系統(tǒng)。在終端中使用gedit工具創(chuàng)建一個(gè)名為的文件。2. 編寫代碼骨架在文件中編寫以下代碼:```pythonimport qu

1. 準(zhǔn)備工作

打開VMware虛擬化軟件,啟動(dòng)Ubuntu虛擬機(jī),并登錄系統(tǒng)。在終端中使用gedit工具創(chuàng)建一個(gè)名為的文件。

2. 編寫代碼骨架

在文件中編寫以下代碼:

```python

import queue

from multiprocessing import Process

def readqu(q):

pass

def writequ(q):

pass

if __name__ '__main__':

print('ok')

```

這段代碼只是程序的骨架,定義了讀隊(duì)列和寫隊(duì)列兩個(gè)進(jìn)程,實(shí)現(xiàn)了進(jìn)程間的數(shù)據(jù)傳輸。

3. 驗(yàn)證程序運(yùn)行

在終端中運(yùn)行上一步的代碼:

```

python3

```

如果打印出"ok",則表示程序沒有問題。

4. 創(chuàng)建隊(duì)列實(shí)例

接下來我們繼續(xù)編寫代碼,創(chuàng)建一個(gè)隊(duì)列實(shí)例,并實(shí)現(xiàn)隊(duì)列的寫入和讀取操作。

```python

import queue

from multiprocessing import Process

def readqu(q):

print(())

print(())

print(())

def writequ(q):

q.put('abc')

q.put('e')

q.put('f')

if __name__ '__main__':

q queue.Queue()

writequ(q)

readqu(q)

```

盡管以上代碼實(shí)現(xiàn)了隊(duì)列的寫入和讀取,但是只有一個(gè)主進(jìn)程在運(yùn)行。

5. 多進(jìn)程中使用Queue

我們修改代碼,將寫入隊(duì)列和讀取隊(duì)列的操作分別放在兩個(gè)不同的進(jìn)程中。

```python

from multiprocessing import Process, Queue

def readqu(q):

print(())

print(())

print(())

def writequ(q):

q.put('abc')

q.put('e')

q.put('f')

if __name__ '__main__':

q Queue()

pw Process(targetwritequ, args(q,))

pr Process(targetreadqu, args(q,))

()

()

()

()

print('ok')

```

這里需要特別注意,我們使用了多進(jìn)程導(dǎo)入的Queue。

6. 驗(yàn)證多進(jìn)程數(shù)據(jù)傳輸

在終端中運(yùn)行上一步的代碼:

```

python3

```

如果打印出隊(duì)列的內(nèi)容,并且最后打印出"ok",則表示在多進(jìn)程中實(shí)現(xiàn)了數(shù)據(jù)的傳輸。

標(biāo)簽: