python3之多线程(应用一)

本文详细介绍了Python多线程的基本概念及其使用方法,包括线程的创建、Queue队列的应用、Lock锁的管理等核心内容,并通过实例展示了如何有效地利用多线程提高程序效率。

一、简介:关于多线程

        Python多线程和C/C++多线程利用CPU核不太一样,Python多线程由于GIL存在的原因,只能单核分时间片来轮询运行多个线程,也就是说不管CPU是多少个核,用多线程时候只能是单核,然后多个thread将CPU分为一个个的时间片,一般来说是100条机械码,切换一个线程,轮询着来,时间片到了,就运行下一个线程,周而复始进行。

二、Python多线程方法和属性

    Python多线程用的是threading.Thread直接创建线程,或者继承threading.Thread来创建新的线程类,来进行多线程设计。

    threading.py脚本有很多内建方法和属性提供给用户使用,具体如下例子所示:

效果图:

 

 

三、创建一个线程

利用threading.Thread创建一个线程,并运行,查看结果。

运行效果:

 

我们继续往下看:

 

效果为:

 

从效果上可以看到,先打印了done,然后才打印线程T1中的数字,也就是主线程相关打印执行完成后,子线程的数字才打印。

继续看:

 加入thread1.join()后的效果:

四、线程中Queue的使用

Queue队列的作用很重要,不管是在python中,还是c/c++中,多线程使用Queue很广泛的,下面针对Queue的使用,演示一个小案例,具体如下:

 

运行结果:

 

五、线程之Lock锁的使用 

 由于多线程是共用进行的资源,当多个线程同时访问一个资源,比如说文件,有的线程要写,有的线程读,如果没有处理好同步,那么就好造成错乱,再或者说,同一个全局变量,一个线程自加,一个线程自减,当没有进行加锁处理,会造成数据错乱的。

运行结果:

 

当加锁后的代码如下所示:

效果图:

 

另外,附几个快捷键,以便忘记。。。

▶ Pycharm中多行注释:Ctrl+/
▶ Pycharm中取消多行注释:再次Ctrl+/
▶ Pycharm中多行缩进:Tab
▶ Pycharm中取消多行缩进:Shift+Tab 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值