使用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
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
以上就是对Python微线程应用的相关介绍,希望大家有所收获。
【编辑推荐】