python多线程(简单写法)

最近要处理一批数据,大概几十万,需要多线程处理,但是呢,公司搞得多线程代码封了一大堆东西看都看不懂还没有注释,我还不如自己搞

为了通俗易懂写个基础简单版

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)

打印结果看效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值