简单对比多线程与多进程-python(探索ing)
我又来了,哈哈。
 电脑配置:
 cpu为i5-10300H
 运行内存为16G
测试代码如下
def add():
    lock.acquire()
    with open('test.txt', 'a') as f:
        f.write('写入\n')
    lock.release()
首先多线程
最大线程数为10,循环10000次,正常情况为有10000行"写入"
def many_threading():
    with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
        for j in range(10000):
            executor.submit(add)
运行结果:
 
 如图,1w行。没毛病。
 下面看看多进程
多进程
最大进程数为5,同样循环10000次,同理,正常情况也为10000行“写入”
if __name__ == '__main__':
    with concurrent.futures.ProcessPoolExecutor(max_workers=5) as executor:
        for i in range(10000):
            executor.submit(add)
运行结果:
 
 如图,结果为9981行“写入”,出现数据丢失。
分别为最大线程和进程为2
结果如下
进程

结果依然为9981行,数据丢失。
线程

 结果为1w行,数据正常。
结论
经由上述的对比,可暂得出结论,用线程比用进程好,如考虑数据丢失问题的话。而多线程的速度也比多进程更快,同样二者合用也会出现数据丢失!(这边就直接给出结果了,请看下面几张图。)线程最大数分别为2,4,6,8
最大线程数为2

 
最大线程数为4

 
最大线程数为6

 
最大线程数为8

 
进程最大数为分别为2,4,6,8
最大进程数为2

 
最大进程数为4

 
最大进程数为6

 
最大进程数为8

 希望阅读了我的文章的小伙伴们,都能动手测试测试,每个人电脑都不一样,所以结果也不一样。emmm,以上观点仅代表我自己的看法!同时也只是简单(划重点,防杠精)的测试,也说明不了太多什么吧,哈哈。以及如果文章内容有什么不足之处和问题的话,希望能评论或私信告诉我,谢谢啦!
 最后,感谢你能阅读我的文章,感
 恩!
 
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号