美文网首页
python 多线程分析

python 多线程分析

作者: 小云1121 | 来源:发表于2020-04-11 17:33 被阅读0次

以下代码结果可看到python的多线程执行时间比单线程还慢,是因为GIL全局锁影响了python的执行效率,具体可参考:https://blog.csdn.net/qq_39338671/article/details/87457812

#! /usr/bin/python

#-*- coding:UTF-8 -*-

from threading import Thread,current_thread

import time

def decorator(func):

    def wrapper(*args, **kwargs):

        start_time = time.time()

        func()

        end_time = time.time()

        print("total time:{}".format(end_time - start_time))

    return wrapper

def my_count():

        j=0

        for i in range(0,2):

                print("start %s %s\n" % (current_thread().name,time.time()))

                for j in range(1000000):

                        j=j+1

                print("end %s %s\n" % (current_thread().name,time.time()))

        return True

#线程串行

@decorator

def main1():

        thread_array={}

        for tid in range(2):

                t=Thread(target=my_count)

                t.start()

                t.join()

#线程并发

@decorator

def main2():

        thread_array={}

        for tid in range(2):

                t=Thread(target=my_count)

                t.start()

                thread_array[tid]=t

        for i in range(2):

                thread_array[i].join()

if __name__=='__main__':

        main1()

        main2()

结果:

#串行结果

start Thread-1 1587531413.27

end Thread-1 1587531413.35

start Thread-1 1587531413.35

end Thread-1 1587531413.4

start Thread-2 1587531413.4

end Thread-2 1587531413.45

start Thread-2 1587531413.45

end Thread-2 1587531413.49

total time:0.223469018936

#并发结果

start Thread-3 1587531413.49

start Thread-4 1587531413.5

end Thread-3 1587531413.63

start Thread-3 1587531413.64

end Thread-4 1587531413.64

start Thread-4 1587531413.65

end Thread-3 1587531413.74

end Thread-4 1587531413.74

total time:0.252161979675

相关文章

  • python 多线程分析

    以下代码结果可看到python的多线程执行时间比单线程还慢,是因为GIL全局锁影响了python的执行效率,具体可...

  • 一文学会 Python 多线程编程

    来源:数据分析网Threading 模块从 Python 1.5.2 版开始出现,用于增强底层的多线程模块 thr...

  • GIL

    谈谈python的GIL、多线程、多进程 最近在看 Python 的多线程,经常我们会听到老手说:“python下...

  • Python多线程编程——多线程编程中的加锁机制

    如果大家对Python中的多线程编程不是很了解,推荐大家阅读之前的两篇文章:Python多线程编程——多线程基础介...

  • 5-线程(补充)

    Python多线程原理与实战 目的: (1)了解python线程执行原理 (2)掌握多线程编程与线程同步 (3)了...

  • Python_提高

    GIL全局解释器锁 描述Python GIL的概念, 以及它对python多线程的影响?编写⼀个 多线程抓取⽹⻚的...

  • Python程序员都知道的入门知识の八

    目录【Python程序员都知道的入门知识】 1. 多线程threading、Queue Python的多线程由th...

  • Python多线程实现生产者消费者

    1. Python多线程介绍 Python提供了两个有关多线程的标准库,thread和threading。thre...

  • 多线程

    Python多线程原理与实战 目的: (1)了解python线程执行原理 (2)掌握多线程编程与线程同步 (3)了...

  • Python多线程(上)

    前言 说起Python的多线程,很多人都嗤之以鼻,说Python的多线程是假的多线程,没有用,或者说不好用,那本次...

网友评论

      本文标题:python 多线程分析

      本文链接:https://www.haomeiwen.com/subject/qqyumhtx.html