使用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微线程应用的相关介绍,希望大家有所收获。
【编辑推荐】