吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[讨论] Python多线程登陆这样写的思路对不对,菜鸟一个希望大佬给出建议

[复制链接]
a情授001 发表于 2020-11-10 22:22
本帖最后由 a情授001 于 2020-11-10 22:24 编辑

希望大佬指出毛病,或者大佬们有更好的思路。参考了pyec的多线程更改的
[Python] 纯文本查看 复制代码
import sys,traceback,threading,time
def get(u,p):
    print('账号:'+u,'密码:'+p)
    time.sleep(2)

def 多线程(线程数, 最长等待时间=0, 跟随主线程结束=False):
    n = 0
    u = ['a123-a456','b123-b456','c123-c456','d123-d456']
    任务数 = len(u)
    __多线程列表 = []
    剩余数 = 任务数
    try:
        while 剩余数 > 0:
            名字 = u[n].split('-')[0]
            密码 = u[n].split('-')[1]
            xkz = threading.Lock()
            for x in __多线程列表:
                if x.is_alive() == False:
                    __多线程列表.remove(x)
            if len(__多线程列表) >= 线程数:
                time.sleep(0.1)
            else:
                xkz.acquire()
                线程 = threading.Thread(target=get, args=(名字, 密码), daemon=跟随主线程结束)
                线程.start()
                __多线程列表.append(线程)
                剩余数 -= 1
                n += 1
                xkz.release()
            

        for i in __多线程列表:
            if 最长等待时间 <= 0:
                i.join()
            else:
                i.join(最长等待时间)
        return True
    except:
        print("{}|运行出错\r\n{}\r\n".format(sys._getframe().f_code.co_name, traceback.format_exc()))
        return False
        
def main():
    s = time.time()
    多线程(4)
    e = time.time()
    print(e-s)
    
main()

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

as614001 发表于 2020-11-10 23:25
错11111111111
wanwfy 发表于 2020-11-10 23:57
python的多线程就是鸡肋,只能用到单核,不能算真正的多线程.
用多进程或者异步应该更好一点.
XinSong 发表于 2020-11-10 23:57
pzx521521 发表于 2020-11-11 09:14
本帖最后由 pzx521521 于 2020-11-11 09:16 编辑

最好不要用中文 = =

如果是学threading.Lock()的demo, 代码没什么大问题, 少一个多个线程一起修改的东西
上面代码threading.Lock()是没必要的
因为没有同时修改的东西,
如果上锁了, 就和单线程的效率差不多了
当然因为你的是sleep, 所以还是会快很多的
同意3l 多线程最好不要用python, win和unix下实现不一样, 主要是GIL的限制
不过平常自己用用, 不跑满cpu 也很快了
推过生产环境还是 推荐go 其次java
thepoy 发表于 2020-11-11 12:28
锁好像放错了位置
c03xp 发表于 2020-11-11 14:35
python版易语言
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 11:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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