python中如何实现多线程_Python中的多线程是什么?如何实
现?
以下是本⽂所涵盖的所有专业的简要总结:
什么是python中的多线程?
什么时候在Python中使⽤多线程?
如何在Python中实现多线程?
如何在Python中创建线程?⽽不创建类
通过扩展线程类
不扩展线程类
在Python中使⽤多线程的优点
⾸先,让我们先尝试理解多任务处理,然后才开始学习Python中的多线程。
Python中的多任务处理是什么?
⼀般来说,多任务处理是⼀种同时执⾏多项任务的能⼒。在技术上,多任务处理是指操作系统同时执⾏不同任务的能⼒。例如,你在你的电脑上下载⼀些东西,听歌,同时玩游戏等等。所有这些任务都由同⼀个操作系统同步执⾏。这只不过是多任务处理,它不仅可以帮助您节省时间,⽽且还可以提⾼⼯作效率。
这是⼩编准备的python学习资料,关注,转发,私信⼩编“01”即可获取!
在操作系统中有两种类型的多任务处理:以过程为基础
线程基
简述web开发技术在本⽂中,您将了解到线程基多任务或多线程.
什么是线?
线程基本上是⼀个独⽴执⾏流程。单个进程可以由多个线程组成。程序中的每个线程都执⾏特定的任务。例如,当你在电脑上玩游戏时,⽐如说国际⾜联,整个游戏是⼀个单⼀的过程。,但它由⼏个线程组成,负责播放⾳乐、接收⽤户的输⼊、同步运⾏对⼿等。所有这些都是单独的线程,负责在同⼀个程序中执⾏这些不同的任务。
每个进程都有⼀个始终在运⾏的线程。这是主线。这个主线程实际上创建⼦线程对象。⼦线程也由主线程启动。在本⽂中,我将进⼀步介绍如何检查当前运⾏的线程。
因此,我希望你们已经清楚地理解了什么是⼀条线。接下来,让我们看看Python中的多线程是什么。
什么时候在Python中使⽤多线程?
多线程是⾮常有⽤的节省时间和提⾼性能,但它不能适⽤于任何地⽅。
在前⾯的FIFA⽰例中,⾳乐线程独⽴于接受输⼊的线程,⽽接受输⼊的线程独⽴于运⾏对⼿的线程。这些线程独⽴运⾏,因为它们不相互依赖。
因此,只有当单个线程之间的依赖关系不存在时,才能使⽤多线程。
本⽂进⼀步展⽰了如何在Python中实现多线程。
如何在Python中实现多线程?
可以通过导⼊穿线模块。
在导⼊此模块之前,您必须安装此模块。要在anaconda环境中安装它,请在anaconda提⽰符上执⾏
以下命令:
conda安装-c conda-锻造tbb
成功安装它之后,可以使⽤以下任何命令导⼊线程模块:
import threading
from threading import *
现在已经安装了线程模块,让我们继续使⽤Python进⾏多线程处理。
如何在Python中创建线程?
Python中的线程可以通过三种⽅式创建:⽽不创建类
通过扩展Thread类
不扩展线程类
⽽不创建类
Python中的多线程也可以在不创建类的情况下完成。下⾯是⼀个演⽰相同内容的⽰例:
例⼦:from threading import *
print(current_thread().getName())
def mt():
print('Child Thread')在powerpoint中幻灯片切换效果是
child=Thread(target=mt)
child.start()
print('Executing thread name :',current_thread().getName())
产出:
MainThread
Child Thread
Executing thread name : MainThread
上⾯的输出显⽰,存在的第⼀个线程是主线程。然后,这个主线程创建⼀个执⾏函数的⼦线程,然后主线程再次执⾏最后的print语句。
现在让我们继续前进,看看如何通过扩展Thread类在python中执⾏多线程。
通过扩展Thread类:
当通过扩展Thread类创建⼦类时,⼦类表⽰⼀个新线程正在执⾏某些任务。在扩展Thread类时,⼦类只能覆盖两个⽅法,即_init_()⽅法和run()⽅法。除了这两个⽅法之外,其他任何⽅法都不能被重写。
php sleep 多进程
下⾯是如何扩展Thread类以创建线程的⽰例:
例⼦:import threading
import time
class mythread(threading.Thread):
def run(self):
for x in range(7):
print('Hi from child')
a = mythread()
a.start()
a.join()
print('Bye from',current_thread().getName())
产出:
孩⼦问好
孩⼦问好
孩⼦问好
孩⼦问好
孩⼦问好
孩⼦问好
孩⼦问好
主线再见
上⾯的⽰例显⽰类myclass继承Thread类,⼦类,即myclass重写Run⽅法。默认情况下,任何类函数的第⼀个参数都必须是Self,它是指向当前对象的指针。输出显⽰⼦线程执⾏run()⽅法,主线程等待Child执⾏完成。这是因为JOIN()函数,它使主线程等待⼦线程完成。
这种创建线程的⽅法是最好的⽅法,因为它是标准的⽅法。但是,如果希望在不继承或扩展Thread类的情况下创建线程,则可以采⽤以下⽅式。
不扩展线程类
要在不扩展Thread类的情况下创建线程,可以执⾏以下操作:
例⼦:
from threading import *
class ex:
def myfunc(self): #self necessary as first parameter in a class func
for x in range(7):
print('Child')
myobj=ex()
listbox控件的主要属性thread1=Thread(func)
thread1.start()
thread1.join()
print('done')
产出:
⼉童
⼉童
⼉童
⼉童
⼉童
⼉童
connect和join的区别
⼉童
已完成
⼦线程执⾏myfunc,然后主线程执⾏最后⼀个print语句。
使⽤线程的优点
多线程有许多优点,其中⼀些优点如下:更好地利⽤资源
简化代码
允许并发和并⾏地发⽣各种任务。
减少时间消耗或响应时间,从⽽提⾼性能。
下⾯是⼀个⽰例,⽤于检查在python中使⽤和不使⽤多线程执⾏代码所需的时间:Example:
import time
def sqr(n):
for x in n:
time.sleep(1)
x%2
def cube(n):
for x in n:
time.sleep(1)
x%3
n=[1,2,3,4,5,6,7,8]
s=time.time()
sqr(n)
cube(n)
e=time.time()
print(e-s)
产出:
16.042309284210205
以上是在不使⽤线程的情况下执⾏程序所需的输出时间。现在让我们使⽤线程,看看同⼀个程序发⽣了什么:例⼦:import threading
from threading import *
import time
def sqr(n):
for x in n:
time.sleep(1)
print('Remainder after dividing by 2',x%2)
def cube(n):
儿童python入门教程for x in n:
time.sleep(1)
print('Remainder after dividing by 3',x%3)
n=[1,2,3,4,5,6,7,8]
start=time.time()
t1=Thread(target=sqr,args=(n,))
t2=Thread(target=cube,args=(n,))
t1.start()
time.sleep(1)
t2.start()
t1.join()
t2.join()
end=time.time()
print(end-start)
产出: 9.040220737457275
上⾯的输出清楚地表明,与不使⽤线程的相同程序执⾏所需的时间相⽐,我们使⽤线程所花费的时间要少得多。
我希望您能够清楚地了解本⽂中涉及到的与Python中的多线程有关的概念。确保尽可能多地实践,因为这是编程中使⽤的最重要的概念之⼀。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。