源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python多线程编程(二):启动线程的两种方法

  • 时间:2022-11-15 10:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python多线程编程(二):启动线程的两种方法
在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用threading模块实现多线程编程。一般来说,使用线程有两种模式,一种是创建线程要执行的函数,把这个函数传递进Thread对象里,让它来执行;另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的 class里。 [b]将函数传递进Thread对象[/b]
[u]复制代码[/u] 代码如下:
'''  Created on 2012-9-5    @author:  walfred @module: thread.ThreadTest1  @description: '''    import threading    def thread_fun(num):      for n in range(0, int(num)):          print " I come from %s, num: %s" %( threading.currentThread().getName(), n)    def main(thread_num):      thread_list = list();      # 先创建线程对象      for i in range(0, thread_num):          thread_name = "thread_%s" %i          thread_list.append(threading.Thread(target = thread_fun, name = thread_name, args = (20,)))        # 启动所有线程         for thread in thread_list:          thread.start()        # 主线程中等待所有子线程退出      for thread in thread_list:          thread.join()    if __name__ == "__main__":      main(3)
程序启动了3个线程,并且打印了每一个线程的线程名字,这个比较简单吧,处理重复任务就派出用场了,下面介绍使用继承threading的方式; [b]继承自threading.Thread类[/b]
[u]复制代码[/u] 代码如下:
''' Created on 2012-9-6   @author: walfred @module: thread.ThreadTest2 '''    import threading    class MyThread(threading.Thread):      def __init__(self):          threading.Thread.__init__(self);        def run(self):          print "I am %s" %self.name    if __name__ == "__main__":      for thread in range(0, 5):          t = MyThread()          t.start()
接下来的文章,将会介绍如何控制这些线程,包括子线程的退出,子线程是否存活及将子线程设置为守护线程(Daemon)。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部