Как заставить родительский поток выводить глобальные переменные, определенные в рабочих потоках - PullRequest
0 голосов
/ 05 апреля 2020

Ниже приведена многопоточная программа, которая выполняет простые статистические вычисления для пользовательского массива. Я не могу понять, как заставить родительский поток выводить глобальные переменные, определенные в рабочих потоках, а также как это сделать. Я делаю функцию, которая вызывается с помощью start() в потоке, который указывает на эту функцию, чтобы вернуть значение?

import threading as th


# Function to give maximum in array
def maximum(arr):
    global maxi
    maxi = 0
    for x in range(len(arr)):
        if arr[x] > maxi:
            maxi = arr[x]
    #print ("%sMaximum value is: %s " % (" " , max) + "\n")


# Function to give minimum in array
def minimum(arr):
    global mini

    mini = 999999
    for x in range(len(arr)):
        if arr[x] < mini:
            mini = arr[x]
    #print ("%sMinimum value is: %s " % (" " , min) + "\n")



# Function to give average of an array
def average(arr):
    count = len(arr)
    global summ
    summ = 0
    for x in range(count):
        summ = summ + arr[x]
    avg = summ / count
    #print ("%sAverage value is: %s " % (" " , avg) + "\n")

# Function to prompt user to input array of numbers 
def defArray():
    array = []
    n = int(input("Please Enter the size of your Array of numbers:  "))
    for x in range(n):
        s = input("Please Enter a number:  ")
        if check(s) == False:
            print("Invalid User Input, Please make sure input is a number")
            return
        else:
            array.append(float(s))
    print("Your array is: ")
    print(array)
    return array



# Function to check if user input is correct
def check(item):
    user_number  = str(item)
    if( user_number.isdigit()):
        return True
    else:
        return False




# Section for calling the previous function to show execution

array = defArray()


t1 = th.Thread(target=maximum,args=[array])  
t2 = th.Thread(target=minimum,args=[array])
t3 = th.Thread(target=average,args=[array])

t1.start()
t2.start()
t3.start()

t1.join()
t2.join()
t3.join()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...