Python并发与并行教程(1)——引入线程

到现在为止我所写过的 python反例程序基本都是单线程程序,也就是从执行.py开始到结束只有一个流。然而有时候设计程序时会想要针对不同的需求需要拥有多个流程,也就是多线程程序,这样程序看起来就像并发的。

线程

在python中,如果想在主线程以外独立设计线程,可以使用threading模块
首先让我举一个例子来简单说明python中线程的使用。这里引用一个经典的龟兔赛跑游戏,赛程为10步,每一秒乌龟前进一步,兔子可能睡觉,可能前进两步,那照我们以前单线程的程序来写代码如下:

import random

flags = [True, False]
total_step=10
tortoise_step=0
hare_step=0

while tortoise_step

然而这时可能有人要说,为什么每次都是乌龟的步数先增加,而兔子的步数后增加呢,这对兔子是不是太不公平了?这就是单线程的弊端,那下面我们使用threading模块编写两个线程,一个代表乌龟,一个代表兔子,同时也为了简单介绍threading模块的用法。

import threading, random, time

def tortoise(total_step):
    step=0
    while step

当然,python中也可以像java一样集成threading.Thread类,并在类中定义run方法来实现线程功能,不过在python中我们不建议这么做,也一般不这么做。
今天的讲解先到这里,我们下一期会讲线程的启动和停止。

你可能感兴趣的:(Python并发与并行教程(1)——引入线程)