📅  最后修改于: 2023-12-03 14:54:02.139000             🧑  作者: Mango
在多线程编程中,线程目标(Thread Target)是指线程要执行的方法。在一般情况下,线程目标方法不需要参数。但有时候,我们需要在线程目标方法中传入一些参数,比如需要操作的数据或者某些配置信息等。这时候,就需要使用带参数的线程目标方法。
定义带参数的线程目标方法其实和一般的方法定义一样。只不过需要在方法定义时加上参数列表,并在实际调用时传入相应的参数。
def thread_target_with_args(arg1, arg2):
# 任务代码,可以使用参数 arg1, arg2
在创建线程时,只需要将带参数的线程目标方法作为参数传入即可。同时,需要将方法中要用到的参数也一并传入线程的构造函数中。
import threading
t1 = threading.Thread(target=thread_target_with_args, args=(arg1_val, arg2_val))
Thread
的 args
参数需要传入一个元组,元组中包含了要传入线程目标方法中的所有参数。
以下是一个简单的示例,展示了如何使用带参数的线程目标方法。该示例使用两个线程分别打印出传入的两个整数,并将二者之和保存到变量 sum
中。
import threading
def print_with_sum(a, b):
print(f"a: {a}")
print(f"b: {b}")
sum = a + b
print(f"sum: {sum}")
t1 = threading.Thread(target=print_with_sum, args=(3, 5))
t2 = threading.Thread(target=print_with_sum, args=(7, 9))
t1.start()
t2.start()
输出结果如下:
a: 3
b: 5
sum: 8
a: 7
b: 9
sum: 16
使用带参数的线程目标方法可以很方便地传入需要使用的参数,并在方法内部进行相应的处理。通过合理使用带参数的线程目标方法,可以让多线程编程更加灵活和高效。