LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
Python3 学习之多线程
Max老白Gān丶 2019-02-02

IO密集型(不用CPU)

    多线程
计算密集型(用CPU)
    多进程
使用线程和进程的目的都是为了提升效率
(1)单进程单线程,主进程、主线程
(2)自定义线程:
        主进程
            主线程
            子线程

threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。

threading模块提供的类:  
  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。

threading 模块提供的常用方法: 
  threading.currentThread(): 返回当前的线程变量。 
  threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。 
  threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

threading 模块提供的常量:

       threading.TIMEOUT_MAX 设置threading全局超时时间。

我们引用 theading


写两个线程看看效果!


运行


看不出来什么效果啊!卧槽? 我想了一下是每个任务花时间长就可以看出来效果了,我们不用多线程 给它延迟来看效果。


看一下效果:

可以看到它 先运行了test1 然后延迟了三秒然后运行了test2在延迟了三秒结束运行。


那我们用多线程并发操作试试!


直接输出 test1和test2 延迟三秒结束由此一个简单的多线程操作小程序。

这个只是其一,还有另一种写法,听我娓娓道来。


首先我们需要定义一个类:

写法如下:


看一下运行


看到这里就会有小伙伴想了一次次添加线程多他妈的麻烦啊???

能不能一次性想启动多少启动多少线程啊??of course!!!

写一个for循环就好了

代码如下:

运行查看:


推荐文章
评论(0)
分享到
转载我的主页