Python培训之如何生成线程

发布时间:2022-10-26 09:41:19 人气:55 作者:多测师

  Python中有两个线程模块,分别是thread和threading,threading是thread的升级版。threading的功能更强大。

  创建线程有3种方法:

  1、thread模块的start_new_thread函数

  2、继承自threading.Thread模块

  3、用theading.Thread直接返回一个thread对象,然后运行它的start方法

  方法一、thread模块的start_new_thread函数

  其函数原型:

  start_new_thread(function,atgs[,kwargs])

  其参数含义如下:

  function: 在线程中执行的函数名

  args:元组形式的参数列表。

  kwargs: 可选参数,以字典的形式指定参数(即对一些参数进行指定初始化)

  代码

  import thread

  def hello(id = 0, interval = 2):

  for i in filter(lambda x: x % interval == 0, range(10)):

  print "Thread id : %d, time is %d\n" % (id, i)

  if __name__ == "__main__":

  #thread.start_new_thread(hello, (1,2)) 这种调用形式也是可用的

  #thread.start_new_thread(hello, (2,4))

  thread.start_new_thread(hello, (), {"id": 1})

  thread.start_new_thread(hello, (), {"id": 2})

Python培训之如何生成线程

  方法二:继承自threading.Thread模块

  注意:必须重写run函数,而且想要运行应该调用start方法

  import threading

  class MyThread(threading.Thread):

  def __init__(self, id, interval):

  threading.Thread.__init__(self)

  self.id = id

  self.interval = interval

  def run(self):

  for x in filter(lambda x: x % self.interval == 0, range(10)):

  print "Thread id : %d time is %d \n" % (self.id, x)

  if __name__ == "__main__":

  t1 = MyThread(1, 2)

  t2 = MyThread(2, 4)

  t1.start()

  t2.start()

  t1.join()

  t2.join()

  方法三:用theading.Thread直接返回一个thread对象,然后运行它的start方法

  import threading

  def hello(id, times):

  for i in range(times):

  print "hello %s time is %d\n" % (id , i)

  if __name__ == "__main__":

  t = threading.Thread(target=hello, args=("hawk", 5))

  t.start()

  以上内容为大家介绍了Python培训之如何生成线程,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线