python多线程

本文详细介绍了Python的多线程概念,包括进程与线程的区别、多线程的优势以及如何实现线程同步。通过join方法实现线程阻塞,通过Lock实现线程间的资源互斥,并探讨了Python的GIL锁带来的多线程执行限制。
摘要由CSDN通过智能技术生成

python多线程

线程和进程:

什么是进程?

进程:有时被称为重量级级进程,是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈以及记录运行轨迹的辅助数据,操作系统管理运行的所有进程,并为这些进程公平分配时间。进程可以通过fork和spawn操作完成其他任务。因为各个进程有自己的内存空间、数据栈等,所有只能使用进程间通信(IPC),而不能直接共享信息。

什么是线程 ?

线程:有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

多线程和多进程:

对于“多任务”这个词相信大家都不会第一次看见,现在的操作系统(如:Mac OS X、UNIX、Linux、Windows等)都支持“多任务”操作系统。
什么叫“多任务”呢?简单地说就是操作系统可以同时运行多个任务。比如,一边用浏览器上网,一边听音乐,一边聊天,这就是多任务。
对于操作系统来说,一个任务就是一个进程,开启多个任务就是多进程。有些进程不止可以同时做一件事,比如Word可以同时打字、拼写检查、打印等。在一个进程内部同时要做多件事情,就需要同时运行多个线程。多线程类似于同时运行多个不同的程序,多线程的好处有以下几点:

  1. 使用线程可以把占据长时间的程序中的任务放到后台去处理。
  2. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度
  3. 程序的运行速度可能加快
  4. 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

多线程:

Python的标准库提供了两个模块:_thread和threading,_thread是低级模块,threading是高级模块,对_thread进行了封装。再加上_thread不支持守护线程,当主线程退出时,子线程无论是否在工作,都会被强制退出。而threading带守护线程,绝大多数情况下,我们只需要使用threading这个高级模块。

import threadin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值