首页 / 知识
Python线程编程的两种方式
2023-11-12 13:36:00
Python中如果要使用线程的话,python的lib中提供了两种方式。一种是函数式,一种是用类来包装的线程对象。举两个简单的例子希望起到抛砖引玉的作用,关于多线程编程的其他知识例如互斥、信号量、临界区等请参考python的文档及相关资料。
1、调用thread模块中的start_new_thread()函数来产生新的线程,请看代码:
#thread_example.py
importtime
importthread
deftimer(no,interval):#自己写的线程函数
whileTrue:
print'Thread:(%d)Time:%s'%(no,time.ctime())
time.sleep(interval)
deftest():
thread.start_new_thread(timer,(1,1))#使用thread.start_new_thread()产生2个新的线程
thread.start_new_thread(timer,(2,3))
if__name__=='__main__':
test()
这个是thread.start_new_thread(function,args[,kwargs])函数原型,其中function参数是你将要调用的线程函数;args是讲传递给你的线程函数的参数,他必须是个tuple类型;而kwargs是可选的参数。线程的结束一般依靠线程函数的自然结束;也可以在线程函数中调用thread.exit(),他抛出SystemExitexception,达到退出线程的目的。
2、通过调用threading模块继承threading.Thread类来包装一个线程对象。请看代码#threading_example.py
importthreading
importtime
classtimer(threading.Thread):#我的timer类继承自threading.Thread类
def__init__(self,no,interval):
threading.Thread.__init__(self)#在我重写__init__方法的时候要记得调用基类的__init__方法
self.no=no
self.interval=interval
defrun(self):#重写run()方法,把自己的线程函数的代码放到这里
whileTrue:
print'ThreadObject(%d),Time:%s'%(self.no,time.ctime())
time.sleep(self.interval)
deftest():
threadone=timer(1,1)#产生2个线程对象
threadtwo=timer(2,3)
threadone.start()#通过调用线程对象的.start()方法来激活线程
threadtwo.start()
if__name__=='__main__':
test()
其实thread和threading的模块中还包含了其他的很多关于多线程编程的东西,例如锁、定时器、获得激活线程列表等等,相关资料仔细参考python的文档!
以上内容为大家介绍了Python线程编程的两种方式,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为Py为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规Python可执行文件和模块
Python可执行文件和模块,标准,培训,模块,文件,属性,上面,内容,变量,函数,源码,python源代码文件按照功能可以分为两种类型:用于执行的可执行程python操作系统接口模块:OS
python操作系统接口模块:OS,管理,工作,工具,系统,服务,培训,模块,文件,目录,函数,OS模块提供了很多与操作系统进行交互的函数,比如常见的使用函python 命名关键字参数
python 命名关键字参数,位置,参数,名字,培训,关键字,函数,后面,定义,方式,上面,对于关键字参数,函数的调用者可以传入任意不受限制的关键字参Python基础之numpy中的常见函数有
Python基础之numpy中的常见函数有哪些,数组,基础,培训,元素,方向,矩阵,函数,乘积,维度,索引,有些Python小白对numpy中的常见函数不太了解,今天python3如何引入模块?
python3如何引入模块?,系统,位置,培训,标准,模块,方法,成员,路径,下面,别名,使用Python进行编程时,有些功能没必须自己实现,可以借助Python现有python的三角函数在哪?
python的三角函数在哪?,标准,培训,函数,反函数,方法,下面,以上,更多,内容,python中的三角函数在python的标准库math中,math已经包含在你的标python获取当前时间日期有哪些方法
python获取当前时间日期有哪些方法?,时间,标准,星期六,培训,日期,微秒,结果,模块,星期,格式,获取到时间也是我们在学习python遇到的常见问题,python中获取路径的三种方法
python中获取路径的三种方法,工作,代码,情况,培训,下来,路径,文件,也就是,桌面,目录,python中获取路径总结下来分为三种情况:1、获取工作目录python中函数怎么表示?
python中函数怎么表示?,名称,标准,培训,代码,函数,圆括号,字符串,表达式,选择性,自变量,python中函数定义规则:·函数代码块以def关键词开头,后python有函数重载吗?
python有函数重载吗?,情况,代码,设计,名字,培训,函数,参数,功能,类型,两个,python中没有函数重载。为了考虑为什么python不提供函数重载,首先