Thread并行概念简单理解

from threading import Thread


threads = [
        Thread(target=worker2, args=(work_queue,)) for _ in range(8)
    ]


for thread in threads:
    thread.start()

借用GPT4-Turbo的类比解释:

想象一下有一个篮子里放了很多苹果(这个篮子就像是你的

work_queue

),现在有八个人(这八个人代表八个线程)围着篮子准备拿苹果。

每个人都会按照以下步骤操作:

  1. 走到篮子前。
  2. 伸手进去抓一个苹果(如果篮子里还有苹果的话)。
  3. 拿到苹果后,他们就走开去做自己的事情(这就是处理任务)。
  4. 处理完后,如果还需要更多的苹果(任务),他们会再次回到篮子前重复步骤。

在这个过程中:

  • 每个人是独立操作的:他们各自检查篮子里是否还有苹果,各自拿走一个苹果。
  • 篮子是共享的:所有人都从同一个篮子里拿苹果。
  • 苹果是动态分配的:谁先到篮子前,谁就能拿到苹果。如果某人动作快,可能在别人拿一个苹果的时间里拿了两个。

所以,虽然所有线程共享同一个队列(篮子),但他们并不会拿到“相同”的任务(苹果)。每个线程独立地从队列中抓取任务,因此,每个线程拿到的任务是不同的,除非队列中只有一个任务被重复放入多次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值