码迷,mamicode.com
首页 > 其他好文 > 详细

使用Thread异步开启单个任务,适用于开启后就不用再管的任务

时间:2017-09-14 23:35:05      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:python

使用这个技能时,有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 “>>>>>>”这句话会先执行


使用Thread异步开启单个任务,适用于开启后就不用再管的任务

标签:python

原文地址:http://5186120.blog.51cto.com/5176120/1965414

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!