吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 776|回复: 6
收起左侧

[讨论] python多线程这样写是否在并发?

[复制链接]
Fujj 发表于 2023-3-5 17:15
本帖最后由 Fujj 于 2023-3-5 17:18 编辑

想写一个抢券的多线程,参考了网上的案例,不知道这样写,是否有问题?多线程写的不好,就变成了单线程,有咩有大佬指点一下。。

分别有3张券:coupId1,coupId2,coupId3
getcoup方法是一个死循环,当券抢完的时候才进行break,不然会一致循环请求。

[Python] 纯文本查看 复制代码
ry:
    t1 = threading.Thread(target=getcoup,args=(tokenyh,coupId1))
    t2 = threading.Thread(target=getcoup,args=(tokenyh,coupId2))
    t3 = threading.Thread(target=getcoup,args=(tokenyh,coupId3))
    t1.setDaemon(True)
    t2.setDaemon(True)
    t3.setDaemon(True)
    t1.start()
    t2.start()
    t3.start()
    t1.join(30)
    t2.join(30)
    t3.join(30)
except:
    print ("Error: 无法启动线程")


.join(30)方法是想让线程运行30秒后自动结束,意思就是抢30秒,不管抢不抢的到,30秒后都结束,这个jion的用法也不知道理解的对不对。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

MengYiKeNan 发表于 2023-3-5 18:03
你可以把getcoup方法替换成一个死循环输出函数试一下,传入不同的参数看看三个线程里边的函数是否可以同时输出。
lianzai 发表于 2023-3-5 19:53
 楼主| Fujj 发表于 2023-3-5 20:47
MengYiKeNan 发表于 2023-3-5 18:03
你可以把getcoup方法替换成一个死循环输出函数试一下,传入不同的参数看看三个线程里边的函数是否可以同时 ...

打印出来是没问题的,但是我不是很理解jion的逻辑
wxy9527 发表于 2023-3-5 21:34
某小程序抢某针 有人能00秒抢到 有滑动验证
w759003376 发表于 2023-3-5 21:57
这样写不就是单线程了嘛,t3等t2 30s,t2等t1 30s,要并发且需要等待的话简单的不要join,并且可以在getcoup这个方法去写判断。
bj201809 发表于 2023-3-5 21:59
开启守护线程,同时join设置数值时,超时未处理完毕的子线程将被直接终止
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表