美文网首页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

    时间片轮转:每个任务执行万分之一秒,然后切换。 并行:真的多任务。每个CPU核心执行一个任务 并发:假的多任务。启...

  • Java程序员面试中的多线程问题

    很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Frame...

  • C++11多线程

    1.C++11 Multi-threading Atomic (header) Thread (header) <...

  • 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多线程 Multi-threading

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