Python微線程如何在Stackless環(huán)節(jié)中使用
作者:佚名
Python微線程在很多環(huán)境中都有應(yīng)用,但是我們需要不段的解決相關(guān)技術(shù)問題。下面我們就來詳細(xì)的介紹相關(guān)的代碼以便大家學(xué)習(xí)。
使用Python微線程需要我們不斷的學(xué)習(xí),有些問題一直在困擾著我們,下面我們就來詳細(xì)的看看相關(guān)技術(shù)問題如何解決,以及解決中的一些小技巧。希望大家有所收獲。
使用Stackless Python的內(nèi)置模塊stackless也可以完成多線程編程,使用起來更加方便。以下S_P_C.py腳本將前邊生產(chǎn)者與消費者的代碼改寫為Stackless版,代碼更加簡潔。
- # -*- coding:utf-8 -*-
- # file: S_P_C.py
- #
- import stackless # 導(dǎo)入stackless模塊
- import Queue # 導(dǎo)入Queue模塊
- def Producer(i): # 定義生產(chǎn)者
- global queue # 聲明為全局Queue對象
- queue.put(i) # 向隊列中添加數(shù)據(jù)
- print 'Producer',i, 'add',i
- def Consumer(): # 定義消費者
- global queue
- i = queue.get() # 從隊列中取出數(shù)據(jù)
- print 'Consumer',i, 'get',i
- queue = Queue.Queue() # 生成隊列對象
- for i in range(10):
- stackless.tasklet(Producer)(i) # 添加生產(chǎn)者任務(wù)
- for i in range(10):
- stackless.tasklet(Consumer)() # 添加消費者任務(wù)
- stackless.run() # 執(zhí)行任務(wù)
- 運行腳本后輸出如下所示。
- Producer 0 add 0
- Producer 1 add 1
- Producer 2 add 2
- Producer 3 add 3
- Producer 4 add 4
- Producer 5 add 5
- Producer 6 add 6
- Producer 7 add 7
- Producer 8 add 8
- Producer 9 add 9
- Consumer 0 get 0
- Consumer 1 get 1
- Consumer 2 get 2
- Consumer 3 get 3
- Consumer 4 get 4
- Consumer 5 get 5
- Consumer 6 get 6
- Consumer 7 get 7
- Consumer 8 get 8
- Consumer 9 get 9
以上就是對Python微線程應(yīng)用的相關(guān)介紹,希望大家有所收獲。
【編輯推薦】
責(zé)任編輯:張浩
來源:
博客園