美文网首页
Python多线程-thread.start_new_threa

Python多线程-thread.start_new_threa

作者: Liuzz25 | 来源:发表于2019-08-15 17:14 被阅读0次

在使用python多线程的时候,踩到了主线程未等待多线程进程运行完成就结束,导致多线程无效的坑。后来想到自己写个全局变量监控多线程是否全部完成。话不多说,上代码。

def test(i):
    global unfinished_thread
    print '开始运行第%s个进程'%i
    time.sleep(i)
    lock.acquire()
    unfinished_thread -= 1
    print '结束运行第%s个进程'%i
    lock.release()


# 测试入口
if __name__ == '__main__':
    unfinished_thread = 0
    # 创建线程锁,用于判断线程是否全部完成
    lock = Lock()
    start_time = time.time()
    for i in range(1, 4, 1):
        try:
            # 多线程多分类同时运行
            unfinished_thread += 1
            thread.start_new_thread(test, (i,))
        except:
            print "Error: unable to start thread" + str(i)
    while True:
        # 等待所有线程完成
        lock.acquire()
        if unfinished_thread != 0:
            lock.release()
            time.sleep(1)
            print'多线程未结束,休眠1s,剩余线程数量:%s' % unfinished_thread
        else:
            lock.release()
            break
    print '运行完毕,耗时%s秒' % (time.time() - start_time)
  • unfinished_thread 为全局变量 ,用于记录未完成线程数。
    其他的,代码注释已经写了,就不多哔哔啦~

运行结果如下:


运行结果

相关文章

  • Python多线程-thread.start_new_threa

    在使用python多线程的时候,踩到了主线程未等待多线程进程运行完成就结束,导致多线程无效的坑。后来想到自己写个全...

  • GIL

    谈谈python的GIL、多线程、多进程 最近在看 Python 的多线程,经常我们会听到老手说:“python下...

  • Python多线程编程——多线程编程中的加锁机制

    如果大家对Python中的多线程编程不是很了解,推荐大家阅读之前的两篇文章:Python多线程编程——多线程基础介...

  • 5-线程(补充)

    Python多线程原理与实战 目的: (1)了解python线程执行原理 (2)掌握多线程编程与线程同步 (3)了...

  • Python_提高

    GIL全局解释器锁 描述Python GIL的概念, 以及它对python多线程的影响?编写⼀个 多线程抓取⽹⻚的...

  • Python程序员都知道的入门知识の八

    目录【Python程序员都知道的入门知识】 1. 多线程threading、Queue Python的多线程由th...

  • Python多线程实现生产者消费者

    1. Python多线程介绍 Python提供了两个有关多线程的标准库,thread和threading。thre...

  • 多线程

    Python多线程原理与实战 目的: (1)了解python线程执行原理 (2)掌握多线程编程与线程同步 (3)了...

  • Python多线程(上)

    前言 说起Python的多线程,很多人都嗤之以鼻,说Python的多线程是假的多线程,没有用,或者说不好用,那本次...

  • Python 3中的多线程

    Python 3的多线程 Python 3的多线程模块threading在旧版_thread模块基础上进行了更高层...

网友评论

      本文标题:Python多线程-thread.start_new_threa

      本文链接:https://www.haomeiwen.com/subject/mrpzjctx.html