- 线程可以认为是轻量级的进程
- 一个进程至少包含一个线程(主线程)
- 线程是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('主线程结束')
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~