Python微线程如何在Stackless环节中使用

开发 后端
Python微线程在很多环境中都有应用,但是我们需要不段的解决相关技术问题。下面我们就来详细的介绍相关的代码以便大家学习。

使用Python微线程需要我们不断的学习,有些问题一直在困扰着我们,下面我们就来详细的看看相关技术问题如何解决,以及解决中的一些小技巧。希望大家有所收获。

使用Stackless Python的内置模块stackless也可以完成多线程编程,使用起来更加方便。以下S_P_C.py脚本将前边生产者与消费者的代码改写为Stackless版,代码更加简洁。

 

  1. # -*- coding:utf-8 -*-   
  2. # file: S_P_C.py   
  3. #   
  4. import stackless # 导入stackless模块   
  5. import Queue # 导入Queue模块   
  6. def Producer(i): # 定义生产者   
  7. global queue # 声明为全局Queue对象   
  8. queue.put(i) # 向队列中添加数据   
  9. print 'Producer',i, 'add',i   
  10. def Consumer(): # 定义消费者   
  11. global queue   
  12. i = queue.get() # 从队列中取出数据   
  13. print 'Consumer',i, 'get',i   
  14. queue = Queue.Queue() # 生成队列对象   
  15. for i in range(10):   
  16. stackless.tasklet(Producer)(i) # 添加生产者任务   
  17. for i in range(10):   
  18. stackless.tasklet(Consumer)() # 添加消费者任务   
  19. stackless.run() # 执行任务   
  20. 运行脚本后输出如下所示。   
  21. Producer 0 add 0   
  22. Producer 1 add 1   
  23. Producer 2 add 2   
  24. Producer 3 add 3   
  25. Producer 4 add 4   
  26. Producer 5 add 5   
  27. Producer 6 add 6   
  28. Producer 7 add 7   
  29. Producer 8 add 8   
  30. Producer 9 add 9   
  31. Consumer 0 get 0   
  32. Consumer 1 get 1   
  33. Consumer 2 get 2   
  34. Consumer 3 get 3   
  35. Consumer 4 get 4   
  36. Consumer 5 get 5   
  37. Consumer 6 get 6   
  38. Consumer 7 get 7   
  39. Consumer 8 get 8   
  40. Consumer 9 get 9  

以上就是对Python微线程应用的相关介绍,希望大家有所收获。

【编辑推荐】

  1. Python next函数实际操作教程
  2. Python正则表达式的几种匹配方法
  3. Python语言使用特点介绍
  4. 探究Python性能为什么如此的强大
  5. Python编程语言在未来的发展趋势
责任编辑:张浩 来源: 博客园
相关推荐

2022-06-23 08:00:53

PythonDateTime模块

2010-03-10 14:03:41

python处理文本

2021-03-09 07:27:40

Kafka开源分布式

2015-08-27 09:46:09

swiftAFNetworkin

2022-05-17 08:25:10

TypeScript接口前端

2024-01-18 08:37:33

socketasyncio线程

2021-06-09 09:36:18

DjangoElasticSearLinux

2011-08-10 09:31:41

Hibernateunion

2019-09-16 19:00:48

Linux变量

2020-11-30 11:55:07

Docker命令Linux

2020-04-09 10:18:51

Bash循环Linux

2014-07-02 09:47:06

SwiftCocoaPods

2023-12-01 09:18:27

AxiosAxios 库

2015-11-26 10:57:56

DockerOpen vSwitc

2022-10-25 09:07:28

Linuxxargs命令

2021-09-10 10:30:22

Java代码

2018-06-26 09:15:24

Linux命令history

2018-05-16 10:32:06

Linux命令find

2023-01-28 17:41:07

Java代码

2020-12-31 07:31:10

C# 反射数据
点赞
收藏

51CTO技术栈公众号