Python中的多线程
Python中的多线程
多线程是编程语言中的一个重要概念,有了这个特性,我们可以在python中使用多线程来实现多任务。这对您的代码的效率和有效性非常有好处,让我们开始解释。
首先,问题是,线程到底是什么!好吧,线程是我们程序的一部分,可以像函数一样独立运行。
我们可以在 python 中使用 threading 模块在我们的代码中实现多线程。在我们的例子中,我们想要得到一个数组的总和,然后我们想要将它们相乘,让我们看看这个例子。
将线程导入为 td ;
将 functools 导入为 ft ;
定义总和(*arr):
sum = ft.reduce(lambda x , y : x + y , l ) ;
print("sum : {0}".format(sum)) ;
def 乘法(*arr):
相乘 = ft.reduce(lambda a , b : a*b ,l ) ;
打印(“乘:”,乘);
l = [1,2,3,4];
task1 = td.Thread(target=summation,args=(l)) ;
task2 = td.Thread(target=multiplication,args=(l)) ;
task1.start() ;
task2.start() ;
task1.join() ;
task2.join() ;
注意:functools 模块不是必需的,不要因此而分心
-
在第 1 行中,我将线程模块导入为 td 以有效地使用它。
-
在第 3 到 6 行中,我编写了函数,一个用于获取数组的总和,一个用于将数组相乘。
-
在第 8 到 14 行,我们为多线程编写了对象。如您所见,语法是这样的
task = threading.Thread(target=function,args=(param,)) ;
我们使用 Thread ,然后将函数分配给目标,然后使用 args 传递参数。使用 task.start() 我们调用我们的任务开始然后使用 task.join() 我们等待我们的任务完成,非常简单。
让我们看一个只运行一个线程的简单示例:
将线程导入为 td ;
def thread1(**args):
唯一值 = {}
对于 args.items() 中的 i、j:
打印(“键:”,我);
unique_values.add(j) ;
对于 x in unique_values :
print("唯一值:", x) ;
字典 = {"1":1,"2":1} ;
t = td.Thread(target=thread1,args(dict)) ;
t.start() ;
t.join()
在我们的示例中,我们运行获取字典的唯一值并获取键(奇怪的函数:\)。
抱歉,如果我没有详细介绍本文,但我认为您可以了解该主题并将其用于您自己的项目和练习中,我可以。我希望我简化了它。
结论
请关注我,你会帮助我很多。
谢谢阅读。如果您觉得这篇文章有用,请不要忘记鼓掌并与您的朋友和同事分享。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明