前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 多线程的使用

python 多线程的使用

作者头像
py3study
发布2020-01-13 12:57:48
5230
发布2020-01-13 12:57:48
举报
文章被收录于专栏:python3python3

在实际编程过程中经常需要把任务包装成多进程或者多线程,多进程和多线程的区别在于多线程是内存共享、变量等共享的,多进程的进程间是独立运行的,所以创建多线程还是多进程取决于不同的需求。

python中因为有全局锁的机制,所以在python中多线程跑的时候其实只是在用一个CPU,尽管如此,多线程跑还是比单线程跑要快很多。

以threading.Thread来说,在python中创建多线程大致有两种方式。

方式1

在子类中调用threading.Thread类

import threading.Thread

class Metric_Collector(threading.Thread):

    def __init__(self):

        threading.Thread.__init__(self)

    def run(self):

        print "Testing....."

        time.sleep(10)

for i in range(10):

    t = Metric_Collector()

    t.start()

threading.Thread类中也有run()方法,在Metric_Collector类中重写了run()方法,这样写代码读起来比较结构化。

方式2

在threading.Thread实例中调用方法

import threading.Thread

class Metric_Collector(object):

    def __init__(self):

        pass

    def move(self, var1, var2):

        print "Testing.....%s %s" % (var1, var2)

collector = Metric_Collector()

for i in range(10):

    t=threading.Thread(target = colector.move, args = (var1, var2))

    t.start()

这种方法在使用中比较自由。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档