【问题标题】:Sum of Random variables in same sleep() time in PYTHONPYTHON 中相同 sleep() 时间的随机变量总和
【发布时间】:2021-06-19 00:49:05
【问题描述】:

如果 A 和 B 同时出现,我想计算数字的总和。你能帮助我吗? 我的代码在这里:

import threading
import time
import random


def print_hello():
    for i in range(6):
        time.sleep(1)
        print("A :" + str(random.randrange(1,20)) + "\n")


def print_hi():
    for i in range(6):
        time.sleep(1.5)
        print("B :" + str(random.randrange(1,10)))




t1 = threading.Thread(target=print_hello)
t2 = threading.Thread(target=print_hi)
t1.start()
t2.start()

【问题讨论】:

  • 你想要的输出是什么?您的代码对我来说运行良好,但我想您希望它输出与当前所做的不同的东西
  • 如果您想在线程之间共享信息,请查看this guide
  • 例如,我的输出是:A:6 B:4 A:10 B:1 A:12 如果最后两个整数同时出现(B:1 和 A:12),我的输出应该给我这些数字的总和。像这样“A and B: 13”我需要类似 if 条件的东西。可能,这很容易,但我是这条路上的新手。 :)
  • 这听起来真的很难,希望有更好的线程知识或使用multiprocessing module 的人能提供帮助

标签: python multithreading thread-sleep


【解决方案1】:

if A and B come same time 是什么意思?

如果您只想在两者同时打印数字时求和,

import time
import random

randomA = 0
randomB = 0
timeA = int(time.time()%60)
timeB = int(time.time()%60)

def print_hello():
    for i in range(6):
        time.sleep(1)
        global timeA
        timeA = int(time.time()%60)
        global randomA
        randomA = random.randrange(1,20)
        print('[A] TimeA',timeA,'TimeB',timeB,' B=',randomB)
        print("A :" + str(randomA))
        if(timeA == timeB):
            print("Times match. Sum = ",str(randomA+randomB))


def print_hi():
    for i in range(6):
        time.sleep(1.5)
        global timeB
        timeB = int(time.time()%60)
        global randomB
        randomB = random.randrange(1,20)
        print('[B] TimeA',timeA,'TimeB',timeB,' A=',randomA)
        print("B :" + str(randomB))
        if(timeA == timeB):
            print("Times match. Sum = ",str(randomA+randomB))



t1 = threading.Thread(target=print_hello)
t2 = threading.Thread(target=print_hi)
t1.start()
t2.start()

 

【讨论】:

  • 是的,我想这样做。我真的很感谢你。 ``` print('[A] TimeA',timeA,'TimeB',timeB, "\n", 'B=',randomB) ```'timeA'和'timeB的值有什么变化' 每次程序运行时。
  • 太棒了!这个解决方案有更好的实现。您可以尝试与线程相关的东西link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
  • 2019-04-05
相关资源
最近更新 更多