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