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


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

相关内容

    暂无相关文章

评论关闭