当前位置: 首页 > 图灵资讯 > 行业资讯> Python中的threading模块是什么

Python中的threading模块是什么

发布时间:2025-11-02 16:19:36

threading提供了一个比thread模块更高层次的API来提供线程并发性。这些线程并发运行并共享内存。

以下是threading模块的具体用法:

1.使用Thread时,目标函数可以实例化一个Thread对象,每个Thread对象代表一个线程,可以通过start()开始运行。

这里对多线程并发的使用和不适用的多线程并发进行了比较:

一是不使用多线程操作:

代码如下:

#!/usr/bin/python
#compareformultithreads
importtime

defworker():
print"worker"
time.sleep(1)
return

if__name__=="__main__":
foriinxrange(5):
worker()

结果如下:

以下是多线程并发的操作:

代码如下:

#!/usr/bin/python
importthreading
importtime

defworker():
print"worker"
time.sleep(1)
return

foriinxrange(5):
t=threading.Thread(target=worker)
t.start()

可以清楚地看出,多线程并发操作的使用时间要短得多。

二、threading.activeCount()使用此方法返回当前过程中线程的数量。返回的数量包括主线程。

代码如下:

#!/usr/bin/python
#current'snumberofthreads
importthreading
importtime

defworker():
print"test"
time.sleep(1)

foriinxrange(5):
t=threading.Thread(target=worker)
t.start()

print"currenthas%dthreads"%(threading.activeCount()-1)

三、threading.enumerate()使用此方法返回当前运行中的Thread对象列表。

相关推荐:Python视频教程

代码如下:

#!/usr/bin/python
#testthevariablethreading.enumerate()
importthreading
importtime

defworker():
print"test"
time.sleep(2)

threads=[]
foriinxrange(5):
t=threading.Thread(target=worker)
threads.append(t)
t.start()

foriteminthreading.enumerate():
printitem

print

foriteminthreads:
printitem

四、threading.setDaemon()使用。设置后台流程。

代码如下:

#!/usr/bin/python
#createadaemon
importthreading
importtime

defworker():
time.sleep(3)
print"worker"

t=threading.Thread(target=worker)
t.setDaemon(True)
t.start()
print"haha"

可见worker()方法中的打印操作没有显示出来,说明已经成为后台过程。

threading.Thread

Thread 它是threading模块中最重要的类别之一,可以用来创建线程。创建线程有两种方法:一种是继承thread类,重写其run方法;另一种是创建threading.Thread对象在其初始化函数(__init__)将可调用对象作为参数传入。以下是一些例子。让我们先来看看继承threading。.Thread类创建线程的例子:

#coding=gbk
importthreading,time,random
count=0
classCounter(threading.Thread):
def__init__(self,lock,threadName):

'''@summary:对象的初始化。


@paramlock:琐对象。

@paramthreadName:线程名称。

'''
super(Counter,self).__init__(name=threadName)
#注意:父类的初始调用必须明确。
化函数。
self.lock=lock

defrun(self):

'''@summary:重写父类run方法,并在线程启动后执行该方法中的代码。

'''
globalcount
self.lock.acquire()
foriinxrange(10000):
count=count+1
self.lock.release()
lock=threading.Lock()
foriinrange(5):
Counter(lock,"thread-"+str(i)).start()
time.sleep(2)
#确保所有线程都完成
printcount

在代码中,我们创建了一个Counter类,它继承了threading.Thread。初始化函数接收两个参数,一个是锁定对象,另一个是线程的名称。在counter中,重写了从父亲那里继承的run方法,run方法逐一增加了1万个全局变量。在下一个代码中,创建了五个counter对象,分别调用其start方法。最后打印结果。这里有一个解释run方法 和start方法: 它们都是从Thread继承下来的,run()在线程打开后执行方法,可以将相关逻辑写入run方法(通常称run方法为活动)[Activity]。);start()启动线程的方法。

相关文章

Python中的threading模块是什么

Python中的threading模块是什么

2025-11-02
Python中Thread子类如何封装

Python中Thread子类如何封装

2025-10-31
Python中的并行和并发是什么

Python中的并行和并发是什么

2025-10-31
Python绘图时如何显示中文

Python绘图时如何显示中文

2025-10-31
Python中的匿名函数是什么

Python中的匿名函数是什么

2025-10-31
python中的进制转换和原码,反码,补码

python中的进制转换和原码,反码,补码

2025-10-31