在threading
模块中,最流行和最常用的调用是Thread
类,它主要用于创建和运行线程。Thread
类提供了创建和管理线程所需的所有主要功能。
成都创新互联于2013年成立,先为新源等服务建站,新源等地企业,进行企业商务咨询服务。为新源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
线程对象是 Thread 类的对象,其中每个对象代表一个要在单独的控制线程中执行的活动。
有两种方法可以创建线程对象并指定要执行的活动:
run()
方法。使用构造器或运行方法创建的线程对象可以使用start()
方法启动。每当线程对象开始一个新的线程,那么在内部它的run()
方法被调用。
这里有一个简单的例子:
在上面的例子中,我们还使用了time
模块来使其中一个线程休眠。
Thread
类构造器的基本语法是:
Thread(group=None, target=None, name=None, args=(), kwargs={})
我们将在下一节解释Thread
类构造器的参数。
一旦我们使用Thread
类构造器初始化了一个线程,我们必须调用它的start()
方法来启动这个线程。
当线程开始时,线程被认为是活动的和活动的。当其run()
方法终止时,正常情况下,或者由于未处理的异常,线程停止活动或活动。isAlive()
方法测试线程在任何给定时间点是否活动。
其他线程可以调用一个线程的join()
方法来连接任何线程。这将阻塞调用线程,直到调用join()
方法的线程终止。
例如,在上面的代码中,从主线程,我们调用t1.join()
和t2.join()
,因此主线程将等待线程t1
和t2
终止然后结束。
每个线程都有一个关联的名称。名称可以传递给构造器,也可以分别使用setname()
和getname()
方法设置或检索名称。
一个标志守护线程可以与任何线程相关联。这个标志的意义在于,当只剩下守护线程时,整个 python 程序就会退出。可以分别使用setDaemon()
方法和getDaemon()
方法设置或检索标志。
主线程对象对应 python 程序中控件的初始线程。它不是守护线程。
Thread
类中的函数和构造器现在我们已经看到了一个运行线程的基本线程程序,是时候理解代码以及探索Thread
类提供的所有重要方法了。
Thread
类构造器以下是Thread
类构造器的基本语法:
Thread(group=None, target=None, name=None, args=(), kwargs={})
构造器允许许多参数,有些是必需的,有些不是。让我们看看它们是什么:
group
:应该是无。它是为将来的扩展保留的。
target
:这是run()
方法要调用的可调用对象或任务。如您在顶部的代码示例中所见,我们已经指定函数名 thread1 和 thread2 作为该参数的值。默认值为无。
name
:用于指定线程名称。默认情况下,会按照格式 Thread-N 生成一个唯一的名称,其中 N 是一个小的十进制数。
args
:这是目标调用的参数元组。我们可以在其中提供可用于 traget 方法的值。默认值为空,即()
kwargs
:这是目标调用的关键字参数字典。这默认为{}。
start()
方法此方法用于启动线程的活动。当我们调用这个方法时,内部调用run()
方法,该方法执行目标函数或可调用对象。
run()
方法表示线程活动的方法。
您可以在扩展threading
模块的Thread
类的子类中覆盖这个方法。标准 run()方法调用传递给对象构造器的可调用对象作为目标参数,顺序参数和关键字参数分别取自args
和kwargs
参数。
这里有一个简单的例子,我们已经创建了一个子类,在这个子类中我们将覆盖run()
方法。
join([timeout])
方法当我们为任何线程调用此方法时,它会阻塞调用线程,直到其join()
方法被调用的线程正常或通过未处理的异常终止。
如果要提供timeout
参数,应该是浮点数。
getName()
方法此方法用于返回线程的名称。
setName(name)
方法用于设置线程的名称。该名称是一个仅用于识别目的的字符串。
isAlive()
方法此方法返回线程是否活动。从start()
方法返回的那一刻起,直到其run()
方法终止,线程都是活动的。
isDaemon()
方法此方法用于获取线程守护程序标志的值。
setDaemon(daemonic)
方法该方法用于将线程的守护标志设置为布尔值后台。这必须在调用start()
方法之前调用。
当没有活动的非守护线程时,整个 Python 程序就会退出。
新闻标题:Thread类及其对象——Python 多线程
转载来于:http://www.gawzjz.com/qtweb2/news7/6957.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联