Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何同时初始化对象?_Python_Python 3.x - Fatal编程技术网

Python 如何同时初始化对象?

Python 如何同时初始化对象?,python,python-3.x,Python,Python 3.x,我有一个for循环,我一次初始化一个PlayerFree实例。由于我已经有了项目列表,我希望该类同时为列表中的所有项目运行 我知道如何在函数中执行此操作,但我们可以直接为类执行此操作吗?不确定您在这里要问什么。没有“办一个班”这样的事情。是否要同时初始化对象?您的用例是什么?@Selcuk yes初始化对象。你所说的用例是什么意思?我们能不能这样做?重要的问题是你是IO还是CPU受限?IO绑定您可以使用线程,CPU绑定您将需要使用多处理。在标准库中搜索ProcessPool和ThreadPool

我有一个
for
循环,我一次初始化一个
PlayerFree
实例。由于我已经有了项目列表,我希望该类同时为列表中的所有项目运行



我知道如何在函数中执行此操作,但我们可以直接为类执行此操作吗?

不确定您在这里要问什么。没有“办一个班”这样的事情。是否要同时初始化对象?您的用例是什么?@Selcuk yes初始化对象。你所说的用例是什么意思?我们能不能这样做?重要的问题是你是IO还是CPU受限?IO绑定您可以使用线程,CPU绑定您将需要使用多处理。在标准库中搜索
ProcessPool
ThreadPool
由@pyd提出的答案应该可以做到这一点,我建议您尝试这两种方法并进行测量。不确定您在这里要问什么。没有“办一个班”这样的事情。是否要同时初始化对象?您的用例是什么?@Selcuk yes初始化对象。你所说的用例是什么意思?我们能不能这样做?重要的问题是你是IO还是CPU受限?IO绑定您可以使用线程,CPU绑定您将需要使用多处理。在标准库中搜索
ProcessPool
ThreadPool
由@pyd提出的答案应该可以实现我建议尝试和测量这两种方法的技巧。声称CPU受限可能需要
ProcessPoolExecutor
。当我使用ProcessPoolExecutor()时我收到以下错误:
concurrent.futures.process.BrokenProcessPool:当future正在运行或挂起时,进程池中的一个进程突然终止。
并且当我对某些项使用ThreadPoolExecutor()时,它没有执行它应该执行的操作。但对一些人来说,这是完美的工作。这里出了什么问题?如果我同时绑定了I/O和CPU怎么办?@pyd对于某些项目,它会跳过我需要的操作think@johnrao如果它在65%的CPU上运行,则内存或I/O受限。我认为在你完全理解“问题”(如果真的有)之前,你不应该过早地优化某些东西。上面的简单代码有什么问题?想想看,你(以及你的未来)和你的同事需要能够理解正在发生的事情。简单的代码通常更好,特别是对于初学者。由于您使用Python,您已经决定可读性和可维护性比速度更重要。声称受CPU限制可能需要
ProcessPoolExecutor
。当我使用ProcessPoolExecutor()时我收到以下错误:
concurrent.futures.process.BrokenProcessPool:当future正在运行或挂起时,进程池中的一个进程突然终止。
并且当我对某些项使用ThreadPoolExecutor()时,它没有执行它应该执行的操作。但对一些人来说,这是完美的工作。这里出了什么问题?如果我同时绑定了I/O和CPU怎么办?@pyd对于某些项目,它会跳过我需要的操作think@johnrao如果它在65%的CPU上运行,则内存或I/O受限。我认为在你完全理解“问题”(如果真的有)之前,你不应该过早地优化某些东西。上面的简单代码有什么问题?想想看,你(以及你的未来)和你的同事需要能够理解正在发生的事情。简单的代码通常更好,特别是对于初学者。由于您使用Python,您已经决定可读性和可维护性比速度更重要。
if __name__ == '__main__':

    team_one = ['512191', '386271', '935881']

    for item in team_one:
        p = PlayerFree(item)

    team_two = ['288211', '1066118', '532424', '494230']

    for item in team_two:
        p = PlayerFree(item)
import concurrent.futures

team_one = ['512191', '386271', '935881']

#multithreading
with concurrent.futures.ThreadPoolExecutor() as executor:
    results = list(executor.map(PlayerFree,team_one))

#multiprocessing
with concurrent.futures.ProcessPoolExecutor() as executor:
    results = list(executor.map(PlayerFree,team_one))