当前位置:   article > 正文

浅谈python多线程与多进程_arcpy多线程

arcpy多线程

在数量较大的事件中(高并发)python的会受GIL(全局解释锁)影响变慢,GIL只存在于Cpython这个解释器中,使用其他其他解释器不受影响;推荐使用进程,但是进程并不是完美的,应为进程的最小单位是线程,一个进程还包含其他线程,下面是一个简单例子说明在高并发中cpython解释器中线程处于劣势:

import multiprocessing
import threading
from time import ctime
import time
def t1():
    for i in range(1000000):
        print("{}start:{}".format(i,ctime()))

def t2():
    for i in range(1000000):
        print("{}start1:{}".format(i, ctime()))

'''a = threading.Thread(target=t1)
     b = threading.Thread(target=t2)
     a.start()
     b.start()
     a.join()
     b.join()'''
'''a = multiprocessing.Process(target=t1)
     b = multiprocessing.Process(target=t2)'''
if __name__ == '__main__':
     T = time.time()
     print("------------------")
     a = multiprocessing.Process(target=t1)
     b = multiprocessing.Process(target=t2)
     a.start()
     b.start()
     a.join()
     b.join()
     te = time.time()
     print("using time: " + str(te - T) + "s")
#1. 32.24247074127197s不使用线程、进程
#2. 39.16404151916504s使用线程
#3. 23.140634298324585s使用进程
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/151629
推荐阅读
相关标签
  

闽ICP备14008679号