python :线程简介和threading模块的使用

    Python编程 wuya 112次浏览 已收录 0个评论

    线程简介

    • 线程可以认为是轻量级的进程
    • 一个进程至少包含一个线程(主线程)
    • 线程是CPU分配时间(任务调度)的基本单位,调度是操作系统的事
    • 进程之间的数据是独立的,线程之前的数据是共享
    • 一个进程实现多任务,创建多个线程就可以了
    • 线程模块
      • _thread:低级模块,使用不够方便和灵活,很少使用
      • threading:高级模块,是对_thread模块的封装,推荐使用

    _thread

    • 示例:
      import _thread
      import time
      
      def loop(num):
          print('子线程开始')
          print('子线程任务:', num)
          print('子线程结束') 
          
      if __name__ == '__main__':  
          print('主线程开始')
          # 启动一个子线程
          _thread.start_new_thread(loop, (250,))
          time.sleep(2)
          print('主线程结束')

    threading

    • 基本使用
      import threading
      import time
      
      def run(file):
          print(file, '开始下载')
          ct = threading.current_thread()
          print(ct.name)
          for i in range(1, 6):
              time.sleep(1)
              print('已下载{}%...'.format(i * 20))
          print(file, '下载完成')   
          
      if __name__ == '__main__':
          print('主线程开始')
          # 获取主线程
          mt = threading.main_thread()
          print('主线程:', mt.name)
      
          # 获取当前线程
          ct = threading.current_thread()
          print('当前线程:', ct.name)
      
          # 创建子线程
          thr = threading.Thread(target=run, args=('meinv.jpg',), name='图片下载')
      
          # 查看活跃线程数量
          print('活跃线程数量:', threading.active_count())
          # 查看线程活跃状态
          print('线程是否启动:', thr.is_alive())
          # 启动线程
          thr.start()
      
          print('活跃线程数量:', threading.active_count())
          print('线程是否启动:', thr.is_alive())
      
          # 查看线程信息
          print('线程信息:', threading.enumerate())
      
          # 等待子线程结束
          thr.join()
      
          print('主线程结束')

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python :线程简介和threading模块的使用
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址