合并到类中的线程

2024-04-20 08:25:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在类的一个特性中使用线程。类不是继承线程类,它只是利用它,调用类中的函数。这段代码已经针对我的类的问题进行了改进。你知道吗

出现的问题似乎是在类中使用线程并递归调用方法的实现?这只是我的猜测,我不是python方案的专家,所以我不知道。你知道吗

在方法运行中设置thread变量以启用线程。

import threading

class Alpha:


        # Set variable defaults
        leader = 'Swansonburg'

        # - Thread variables
        MAX_CONNECTIONS = 5
        lock = threading.BoundedSemaphore(value=MAX_CONNECTIONS)


        def __init__(self, leader=''):

            if (leader): self.leader = leader


        def run(self):

            print "[+] Alpha: %s, Calling For Backup!" % self.leader

            self.ETA = 101
            for percent in range(self.ETA):

                """ SET TRUE TO ENABLE THREADING """
                THREADING = False

                self.lock.acquire() # Set thread cap

                if (not THREADING): 
                    self.CallBackup(percent)
                else:
                    t = threading.Thread(target=self.CallBackup, args=(percent))
                    t.start()




        def CallBackup(self, percent):
            if (percent == 0): pass
            elif (percent % 10 == 0) | (percent == 100):
                output = ("=" * percent) + (" %% - %d" % percent)
                print (output)

            self.lock.release()



def main():
    new_team = Alpha()

    new_team.run()



if (__name__ == '__main__'):
    main()

Tags: 方法selfalphalockifmaindef线程
1条回答
网友
1楼 · 发布于 2024-04-20 08:25:01

当我试着运行这个时,它给了我一个错误

CallBackup() argument after * must be a sequence, not int

Why do I get TypeError in Threading in Python解释了同样的问题,您需要将args=(percent)替换为args=(percent,),使参数列表成为序列而不是元组。你知道吗

相关问题 更多 >