加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一篇文章读懂 Python 多线程

发布时间:2019-09-25 16:40:15 所属栏目:建站 来源:编程派
导读:副标题#e# Threading模块从 Python 1.5.2 版开始出现,用于增强底层的多线程模块thread。Threading 模块让操作多线程变得更简单,并且支持程序同时运行多个操作。 注意,Python 中的多线程最好用于处理有关 I/O 的操作,如从网上下载资源或者从本地读取文件

更新后的代码如下:

  1. import logging 
  2. import threading 
  3.  
  4. class MyThread(threading.Thread): 
  5. def __init__(self, number, logger): 
  6. threading.Thread.__init__(self) 
  7. self.number = number 
  8. self.logger = logger 
  9.  
  10. def run(self): 
  11. """ 
  12. 运行线程 
  13. """ 
  14. logger.debug('Calling doubler') 
  15. doubler(self.number, self.logger) 
  16.  
  17. def get_logger: 
  18. logger = logging.getLogger("threading_example") 
  19. logger.setLevel(logging.DEBUG) 
  20.  
  21. fh = logging.FileHandler("threading_class.log") 
  22. fmt = '%(asctime)s - %(threadName)s - %(levelname)s - %(message)s' 
  23. formatter = logging.Formatter(fmt) 
  24. fh.setFormatter(formatter) 
  25.  
  26. logger.addHandler(fh) 
  27. return logger 
  28.  
  29. def doubler(number, logger): 
  30. """ 
  31. 可以被线程使用的一个函数 
  32. """ 
  33. logger.debug('doubler function executing') 
  34. result = number * 2 
  35. logger.debug('doubler function ended with: {}'.format( 
  36. result)) 
  37.  
  38. if __name__ == '__main__': 
  39. logger = get_logger 
  40. thread_names = ['Mike', 'George', 'Wanda', 'Dingbat', 'Nina'] 
  41. for i in range(5): 
  42. thread = MyThread(i, logger) 
  43. thread.setName(thread_names[i]) 
  44. thread.start 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读