Как выполняется одна и та же функция параллельно с разными значениями и может возвращать значения с помощью многопроцессорной обработки или многопоточности в python 3.7

#multithreading #parallel-processing #multiprocessing

Вопрос:

Я хочу параллельно запускать две разные функции на python, я использовал приведенный ниже код :

 `def imageEncryptor(image, k1, k2, DyS_box, InDyS_box):
height = image.shape[0]
width = image.shape[1]
# Initializing an empty image to store the encrypted image
enc_Image = np.zeros(shape=[height, width, 1], dtype=np.uint8)
z = 0
for i in range(height):
    for j in range(width):
        # USing the XOR operation between image pixels and keys
        enc_Image[i, j] = image[i, j].astype(int) ^ k1[z]
        z  = 1
# Substituting all the pixels in the original image using random key
size = height * width
Image_1D = enc_Image.reshape(size)
for i in range(size):
    idx = Image_1D[i]
    Image_1D[i] = Image_1D[k2[i]]
    Image_1D[k2[i]] = idx

# Step confusion using Dynamic S-Box
# convert vector to double
for i in range(size):
    Image_1D[i] = DyS_box[InDyS_box[int(Image_1D[i])]]

# Return 2D image
enc_Image = Image_1D.reshape(height, width)
return enc_Image`
 

Я хочу запустить оба этих метода параллельно, чтобы сэкономить время выполнения и в то же время получить возвращаемое значение.

 `# Main 
# Step Encryption
enc_red = imageEncryptor(red, k1, k4, DyS_box, InDyS_box)
enc_green = imageEncryptor(green, k2, k5, DyS_box, InDyS_box)
enc_blue = imageEncryptor(blue, k3, k6, DyS_box, InDyS_box)
encryptedImage = recover_image(enc_red, enc_green, enc_blue, h, w)
plt.imshow(encryptedImage)
plt.show()`
 

Комментарии:

1. Есть ли доступное решение?