美文网首页Python应用集
Python多线程 Multi-threading

Python多线程 Multi-threading

作者: Solomon_Xie | 来源:发表于2019-01-17 03:33 被阅读0次

    时间片轮转:每个任务执行万分之一秒,然后切换。

    • 并行:真的多任务。每个CPU核心执行一个任务
    • 并发:假的多任务。启用时间轮转,CPU对每个任务轮流计算,每次只用万分之一秒执行一个任务。

    当只有4个任务时,4核CPU可以实现并行,即每个核心负责一个任务。
    但是当任务数超过CPU的核心数时,则必须要启用时间轮转。

    一般情况下,全都是并发,因为任务数总是超过核心数。

    Python线程代码:

    import threading
    
    def func():
        for i in range(10):
            print('Run...')
    
    th = threading.thread(target=func)
    th.start()
    

    查看当前运行多线程数量:
    由于多线程同时运行多个线程,每执行完成一个就销毁一个,所以当前线程数量是动态变化的。

    代码:

    # .....
    # .....
    
    th = threading.thread(target=func)
    th.start()
    
    while True:
        amount = len(threading.enumerate)
        if amount < 1:
            break
        sleep(0.5)
    

    注意:程序执行到th.start()开启线程后,不会等待所有线程结束,而会直接执行下一句,同时多条线程一起执行。
    所以,这时候去读取线程数,是一个动态的过程,需要每隔一段时间重复去读取。这时会发现,线程数是逐渐减少的。

    相关文章

      网友评论

        本文标题:Python多线程 Multi-threading

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