MultiThreading

2021/10/30

# gma.osf.MultiThreading(Function, MTParameters, THNumber = 'ALL_CPUS', Process = True, *args, **kwargs)1.0.3 +


功能:【多线程】。创建多个线程,实现同一函数多个参数的同步执行。

参数:

 Function:def||接受传参的可执行程序(命令)。需要多线程执行的函数或程序(命令)。

 MTParameters:list。需要分别带入 Function 的参数集合。

可选参数:

 THNumber = int||ALL_CPUS。线程数,默认是所有 逻辑 CPU 核心数(ALL_CPUS)。

 Process = bool 1.0.8 + 。是否显示多线程进度条。默认显示(True)。

 *args:Function 的固定参数。传递给 Function 的不变参数。从 Function 的第一个开始固定。

 **kwargs:Function 的可选参数'。传递给 Function 的不变可选参数。

返回: list。每个参数带入 Function 执行后的返回值列表。与 MTParameters 的顺序一致。


示例:

from gma import osf

def Fun(Par):
    a, b = Par
    return round(a ** 3 ** 2 / b ** 2, 2)

import numpy as np
np.random.seed(1992)
Data = np.random.uniform(0, 2, size = (10, 2))

Result = osf.MultiThreading(Fun, Data, Process = False)
1
2
3
4
5
6
7
8
9
10
11

>>> [185.76, 971.83, 5.47, 9.07, 717.46, 0.0, 0.33, 0.54, 2.89, 0.0]