最近要处理一批数据,大概几十万,需要多线程处理,但是呢,公司搞得多线程代码封了一大堆东西看都看不懂还没有注释,我还不如自己搞
为了通俗易懂写个基础简单版
import threading
# 定义线程的执行函数
def process_subset(subset, threadName):
for i in range(len(subset)):
# 在这里对子集进行处理
print("线程%s处理%s" % (threadName, subset[i]))
# 主线程
def threadUtil(list):
# 定义线程数量
num_threads = 10
# 计算每个线程要处理的子集大小
subset_size = len(list) // num_threads
# 创建线程对象列表
threads = []
# 创建并启动线程
for i in range(num_threads):
# 计算子集的起始和结束索引
start = i * subset_size
end = start + subset_size if i < num_threads - 1 else len(my_list)
# 创建线程,并将子集作为参数传递给线程的执行函数
t = threading.Thread(target=process_subset, args=(my_list[start:end], i))
threads.append(t)
t.start()
# 等待所有线程执行完成
for t in threads:
t.join()
# 打印处理后的列表
print("所有线程结束了================")
if __name__ == "__main__":
# 假设我们有一个要处理的列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
threadUtil(my_list)
打印结果看效果