使用这个技能时,有2个办法,

1 使用Thread类实例化对象,然后调用它的start()方法,

2 自定义类,继承自Thread类,然后重写run()方法,然后再实例化我们自定义的类,并且调用它的start()方法

-

1 使用Thread类实例化对象,然后调用它的start()方法

def new_task(name,count):
    et = ET()
    total = 0
    for in range(count):
        print "Task {0} is running".format(name)
        time.sleep(1)
    print "Task {0} total: {1}".format(nametotal)
    print "Task {0} total elapsed time: {1}".format(nameet())

def main():
    work_queue = Queue.Queue() #1 生成队列(FIFO类型的队列)
    for work in [5,10,15,2]:   #2 往队列里面放东西
        work_queue.put(work)

    et = ET()  #3 开始计时
    while not work_queue.empty():
        count = work_queue.get()
        _t = Thread(target=new_task,args=(str(count),count)) #初始化一个线程
        _t.start() #让该线程启动,用多线程异步的去跑

    _t.join() #主线程在这里阻塞等待
    print ">>>>>>>"
    print "Total elapsed time is {0}".format(et())
if __name__ == '__main__':
    main()

-

这种情况下,从work_queue里面拿出的数据,用线程跑。 

但是在主线程中,无法阻塞。

print “>>>>>>”这句话会先执行