• 技术文章 >后端开发 >Python教程

    python thread 并发且顺序运行示例

    2016-06-06 11:26:55原创640
    代码如下:


    #-*- coding:utf-8 -*-
    import threading
    import time
    def fun(name, ls_name, front_thread = None):
    '''''
    线程启动函数
    通过front_thread来使用线程有序的运行
    '''
    time.clock()
    time.sleep(2)
    # 如果front_thread存在,则在front_thread运行完成后,才运行当前线程
    if front_thread != None:
    front_thread.join()
    ls_name.append(name)
    print "thread %s : %s"% (name, time.clock())

    if __name__ == '__main__':
    ls_result_name = []
    ls_thread = []
    time.clock()
    # 逐一启动1000个线程
    for i in range(0,10):
    if len(ls_thread) == 0:
    t = threading.Thread(target=fun, args=(i,ls_result_name,None))
    else:
    t = threading.Thread(target=fun, args=(i,ls_result_name,ls_thread[-1]))
    t.start()
    ls_thread.append(t)

    # 等待所有线程结束
    for t in ls_thread:
    t.join()

    print 'ls_result_name:', ls_result_name
    print "main thread:%s" % time.clock()


    运行结果为:
    thread 0 : 1.99962006344
    thread 1 : 2.00000866032
    thread 2 : 2.00059113658
    thread 3 : 2.00080345407
    thread 4 : 2.00100068584
    thread 5 : 2.00119456523
    thread 6 : 2.00138593033
    thread 7 : 2.00166753037
    thread 8 : 2.00211758757
    thread 9 : 2.0024776892
    ls_result_name: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    main thread:2.003211302
    线程更明细的使用可参考:
    http://docs.python.org/library/threading.html
    time.clock模块的更详细介绍可参考:
    http://blog.csdn.net/kiki113/archive/2009/03/28/4033017.aspx
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python thread
    上一篇:Python 文件重命名工具代码 下一篇:python getopt 参数处理小示例

    相关文章推荐

    • 一文了解Python中如何使用query()进行优雅的查询• 解析Python常用的机器学习库• 在Python 3中实现类型检查器的简单方法• Python使用urllib2模块抓取HTML页面资源的实例分享• Python的Flask开发框架简单上手笔记

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网