0

スレッド化を使用して Python でベンチマーク コードを作成するのに問題があります。スレッドを機能させることはできましたが、オブジェクトから値を返すことができません。フロップを計算できるように、値を取得してリストに追加したいと考えています。

スレッド化を実行するクラスを作成する

class myThread(threading.Thread):

    def calculation(self):
        n=0
        start=time.time()
        ex_time=0
        while ex_time < 30:
            n+=1
            end=time.time()
            ex_time=end-start
        return ex_time 


    def run(self): 
        t = threading.Thread(target = self.calculation)
        t.start()

スレッドを作成する関数

def make_threads(num):
    times=[]
    calcs=[]
    for i in range(num):
        print('start thread', i+1)
        thread1=myThread()
        t=thread1.start()
        times.append(t)
     #calcs.append(n)
    #when trying to get a return value it comes back as none as seen
    print(times)
#average out the times,add all the calculations to get the final numbers
#to calculate flops
    time.sleep(32) #stop the menu from printing until calc finish


def main():

    answer=1
    while answer != 0:
        answer=int(input("Please indicate how many threads to use: (Enter     0 to exit)"))
        print("\n\nBenchmark test with ", answer, "threads")
        make_threads(answer)

main()
4

1 に答える 1