当前位置:   article > 正文

python3之多线程(应用一)_python3 多线程

python3 多线程

一、简介:关于多线程

        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 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/143462
推荐阅读
相关标签
  

闽ICP备14008679号